色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Spring security登錄過(guò)程邏輯詳解

瀏覽:106日期:2023-09-12 15:08:01

1. 新建項(xiàng)目

引入web和security包

完整的pom.xml文件如下

<?xml version='1.0' encoding='UTF-8'?><project xmlns='http://maven.apache.org/POM/4.0.0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd'> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.6.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>spring-demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>spring-demo</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions><exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId></exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build></project>

2. 編寫(xiě)啟動(dòng)類(lèi)和控制器方法和自定義登錄頁(yè)面

package com.example.springdemo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;@RestController@SpringBootApplicationpublic class SpringDemoApplication { public static void main(String[] args) { SpringApplication.run(SpringDemoApplication.class, args); } @GetMapping('/') public String hello() { return 'hello spring security'; }}

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>Title</title></head><body><form action='myLogin.html' method='post'> <input type='text' name='username'> <input type='password' name='password'> <input type='submit' value='登錄'></form></body></html>

3. 編寫(xiě)配置類(lèi)

package com.example.springdemo.conf;import org.springframework.security.config.annotation.web.builders.HttpSecurity;import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;import org.springframework.security.core.Authentication;import org.springframework.security.core.AuthenticationException;import org.springframework.security.web.authentication.AuthenticationFailureHandler;import org.springframework.security.web.authentication.AuthenticationSuccessHandler;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.io.PrintWriter;@EnableWebSecuritypublic class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests().anyRequest().authenticated().and().formLogin()//指定處理登錄頁(yè)面.loginPage('/myLogin.html')//指定登錄成功的處理邏輯.successHandler(new AuthenticationSuccessHandler() { @Override public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException { response.setContentType('application/json;charset=UTF-8'); PrintWriter writer = response.getWriter(); writer.write('{'error_code':'0','message':'歡迎登錄'}'); }})//指定登錄失敗時(shí)的處理邏輯.failureHandler(new AuthenticationFailureHandler() { @Override public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException e) throws IOException, ServletException { response.setStatus(401); PrintWriter writer = response.getWriter(); writer.write('{'error_code':'401','name':'' + e.getClass() + '','message':'' + e.getMessage() + ''}'); }}).permitAll().and().csrf().disable(); }}

4. 運(yùn)行結(jié)果

當(dāng)輸入密碼錯(cuò)誤時(shí)

Spring security登錄過(guò)程邏輯詳解

當(dāng)輸入密碼正確時(shí)

Spring security登錄過(guò)程邏輯詳解

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 久久综合亚洲一区二区三区 | 亚洲欧美自拍视频 | 中文字幕在线免费观看视频 | 美女一级毛片视频 | 国产成人综合欧美精品久久 | 亚洲香蕉一区二区三区在线观看 | 国产精品毛片在线大全 | 免费成人毛片 | 特黄特黄aaaa级毛片免费看 | 久色小说 | 在线亚洲精品国产波多野结衣 | 狠狠色丁香婷婷综合小时婷婷 | 亚洲天堂一区二区 | 精品亚洲成a人在线观看 | 手机在线看福利 | 欧美色老头oldvideo | 久久久久亚洲日日精品 | 国产中文字幕在线免费观看 | 日韩欧一级毛片在线播无遮挡 | 99久久亚洲综合精品网站 | 欧美在线小视频 | 精品一区二区三区免费站 | 国产精品自拍第一页 | 欧美成人精品久久精品 | 日本免费一级 | 韩日三级视频 | 亚洲 自拍 欧美 综合 | 最近手机高清中文字幕大全7 | 蜜桃日本一道无卡不码高清 | 日本三级香港三级三级人 | 亚洲国产精品日韩在线 | 国产精品单位女同事在线 | 亚洲精品一级一区二区三区 | 免费视频一区二区三区四区 | 日韩精品一区二区三区免费视频 | 日本精品一区二区三区在线视频 | 久久国产免费观看精品3 | 国产专区在线 | 美女黄频免费观看 | 亚洲黄色免费在线观看 | 国产美女作爱视频 |