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

您的位置:首頁技術文章
文章詳情頁

Spring security登錄過程邏輯詳解

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

1. 新建項目

引入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. 編寫啟動類和控制器方法和自定義登錄頁面

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. 編寫配置類

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()//指定處理登錄頁面.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':'歡迎登錄'}'); }})//指定登錄失敗時的處理邏輯.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. 運行結果

當輸入密碼錯誤時

Spring security登錄過程邏輯詳解

當輸入密碼正確時

Spring security登錄過程邏輯詳解

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
主站蜘蛛池模板: 爱啪网亚洲第一福利网站 | 性欧美欧美巨大69 | 亚欧人成精品免费观看 | 美女mm131爽爽爽免费视色 | chinese宾馆自拍hd | 国产欧美日韩综合精品一区二区 | 国产一区二区三区四区在线观看 | 亚洲天堂毛片 | 国产精品久久国产三级国不卡顿 | 黄色a网站 | 成人精品国产亚洲欧洲 | a免费网站 | 免费精品国产日韩热久久 | 国产黄三级三·级三级 | 黄色美女免费看 | 久久久精品视频免费观看 | 欧美在线一级毛片视频 | 欧美国产成人精品一区二区三区 | 欧美不卡视频 | 日本毛片免费看 | 久久亚洲国产欧洲精品一 | 中国国语毛片免费观看视频 | 欧美成人看片一区二区三区 | 国产专区第一页 | 国产成人综合91精品 | 欧美一区二区三区久久久人妖 | 国产伦码精品一区二区三区 | 中国一级做a爱片免费 | 欧美大片无尺码在线观看 | 国内国产真实露脸对白 | 国产三级精品播放 | 国产一及毛片 | 131美女爱做免费毛片 | 欧美巨大video粗暴 | 国产或人精品日本亚洲77美色 | 欧美精品一区二区三区免费播放 | 日本欧美一区二区三区视频 | 国产成人麻豆精品 | 日韩免费高清一级毛片在线 | 欧美国产成人精品一区二区三区 | 免费逼片 |