当前位置:网站首页>Connexion personnalisée traitée avec succès
Connexion personnalisée traitée avec succès
2022-04-21 23:15:00 【L'autodiscipline de l'argent】
Parfois, le saut de page ne nous satisfait pas,En particulier, il n'est pas nécessaire de sauter la page après le succès dans le développement de la séparation avant - arrière.Il suffit de retourner un à l'avantJSONAviser la connexion réussie ou échouée.Cet essai peut être personnaliséAuthenticationSuccessHandlerRéalisation
ModifierWebSecurityConfigurer
successHandler
package com.example.config;
import com.example.handler.MyAuthenticationSuccessHandler;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@Configuration
public class WebSecurityConfigurer extends WebSecurityConfigurerAdapter {
@Override
public void configure(HttpSecurity http) throws Exception {
//【Notes】Les ressources de libération doivent être placées en premier,Certifié à l'arrière
http.authorizeRequests()
.mvcMatchers("/index").permitAll() //Laissez passer le représentantindexToutes les demandes
.mvcMatchers("/loginHtml").permitAll() //ReleaseloginHtmlDemande
.anyRequest().authenticated()//Certification requise pour représenter d'autres demandes
.and()
.formLogin()//Indique que d'autres demandes nécessitant une certification sont certifiées par le formulaire
//loginPage Une fois que vous avez personnalisé cette page de connexion , Tu dois le dire clairement. SpringSecurity Lequel? url Traiter votre demande de connexion
.loginPage("/loginHtml")// Utilisé pour spécifier l'interface de connexion personnalisée ,Non utiliséSpringSecurityInterface de connexion par défaut Attention!: Une fois la page de connexion personnalisée , Vous devez spécifier un login url
//loginProcessingUrl C'estdoLogin La demande elle - même n'est pas disponible , Parce que nous devons juste être clairs SpringSecurity, À l'avenir, tant que l'avant - plan est lancé doLoginUne telle demande,
//C'est...SpringSecurity Tu devrais usernameEtpassword Pour capturer
.loginProcessingUrl("/doLogin")// Spécifier le traitement des demandes de connexion url
.usernameParameter("uname") // Spécifiez le nom d'utilisateur de l'interface de connexion nameValeur,Si ce n'est pas spécifié, Le nom de propriété par défaut doit être username
.passwordParameter("passwd")// Spécifiez le mot de passe de l'interface de connexion nameValeur,Si ce n'est pas spécifié, Le nom de propriété par défaut doit être password
// .successForwardUrl("/index")//Certification réussie forward Chemin de saut,forward Après avoir représenté un saut à l'intérieur du serveur ,La barre d'adresse reste inchangée Toujours sauter à la demande spécifiée après l'authentification réussie
// .defaultSuccessUrl("/index")//Certification réussie Puis sautez.,Redirection redirect Après le saut,L'adresse change Saut réussi selon la dernière demande d'enregistrement
.successHandler(new MyAuthenticationSuccessHandler()) // Traitement lorsque l'authentification est réussie Solutions de séparation avant et arrière
.and()
.csrf().disable(); //Interdictioncsrf Demande de protection inter - station
}
}
Nouveau traitement réussi handler
package com.example.handler;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.security.core.Authentication;
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.util.HashMap;
import java.util.Map;
/** * Traitement après authentification personnalisée réussie */
public class MyAuthenticationSuccessHandler implements AuthenticationSuccessHandler {
@Override
public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException {
Map<String,Object> result = new HashMap<>();
result.put("msg","Connexion réussie");
result.put("status",200);
result.put("authentication",authentication);
response.setContentType("application/json;charset=UTF-8");
String s = new ObjectMapper().writeValueAsString(result);
response.getWriter().println(s);
}
}
Démarrage réussi,Tests

版权声明
本文为[L'autodiscipline de l'argent]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/04/202204212314421994.html
边栏推荐
- Pytoch framework | torch nn. modules. Module(nn.Module)
- (十)瑞芯微rk3568 中qt工程ffmpeg 拉取rtsp视频流
- Concept and working principle of image acquisition card
- When the color contrast of beix3 is good, the color of the new version 3.1 is close to the original image
- Golang force buckle leetcode 2246 Longest path with different adjacent characters
- 3. MySQL workbench performs addition, deletion, modification and query on the table
- Chapter 2 installation of MySQL database
- 当贝X3色彩对比度好不好,新3.1版本色彩接近原图
- VOS7. 03 installation and source code command
- 1. MySQL workbench 8.0 installation
猜你喜欢

2、Failed to connect to MySQL Server 8.0.28 after 10 attempts

雲原生架構下的微服務選型和演進

2022 TV box plus purchase list ranking, more than half of users buy dangbei box

经典题目刷一刷

2022 hoisting machinery command test question simulation test question bank and answers

GIC spec之ITS和LPI中断5

云原生架构下的微服务选型和演进

Kubernetes - Secret configuration management

2022電視盒子加購榜排名,超一多半的用戶選購當貝盒子

第2章 MySQL数据库的安装
随机推荐
长沙好人
golang力扣leetcode 479.最大回文数乘积
点滴浓缩洁净,洗衣液行业的破局之路
(三)瑞芯微rk3568 ssh 替换 dropbear
1. MySQL workbench 8.0 installation
Informatics Aosai yibentong 1210: factor decomposition | openjudge 1.13 22: factor decomposition
【openh264】SPS的 timing_info_present_flag
【H.264】H.264 解析 工具、web解析
selenium点击的元素被遮挡无法操作的解决办法
How does the applet integrate instant messaging with instant messaging
Golang kicks leetcode game 289
Pytoch framework | torch nn. modules. Module(nn.Module)
How does IOT platform realize business configuration center
【转载】Postman-Omysql连接数据库
APM industry awareness series - 16
1141: C language training - a hundred dollars and a hundred chickens_ Pruning cycle
2022電視盒子加購榜排名,超一多半的用戶選購當貝盒子
经典题目刷一刷
Go language self-study series | golang type definition and type alias
How to set blind area in VOS