SpringSecurity6 Form表单登录官方案例

直接上代码

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.Customizer;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
import org.springframework.security.web.SecurityFilterChain;

@Configuration
@EnableWebSecurity
public class SecurityConfig {

    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http
                .authorizeHttpRequests((authorize) -> authorize
                        .anyRequest().authenticated()
                )
                .httpBasic(Customizer.withDefaults())
                .formLogin(Customizer.withDefaults())
                .logout(Customizer.withDefaults());
        return http.build();
    }

    @Bean
    public UserDetailsService userDetailsService() {
        UserDetails userDetails = User.withDefaultPasswordEncoder()
                .username("user")
                .password("password")
                .roles("USER")
                .build();
        return new InMemoryUserDetailsManager(userDetails);
    }

}
  • 启动!首页自动跳转至/login
    在这里插入图片描述

  • 登录后默认跳转至/,如果没有src/main/resources/templates/index.html则显示404
    在这里插入图片描述

  • 输入默认登出地址/logout,提示是否登出,点击确定则跳转到默认登录页面
    在这里插入图片描述
    在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Spring Security是一个在应用程序中为认证和授权提供安全性的框架。在使用Spring Security验证登录时,可以通过配置认证提供程序、授权机制、用户角色等实现登录,以确保应用程序或系统的安全性。 以下是一个Spring Security登录验证的案例: 1. 首先,在项目的pom.xml文件中添加Spring Security的依赖。 2. 在web.xml文件中添加一个Filter,该Filter用于拦截所有请求并启用Spring Security验证。 3. 在Spring的配置文件中配置Spring Security,包括认证提供程序、授权机制和用户角色等。 4. 在页面中添加登录表单,并使用Spring Security提供的标签进行验证,如: <form:form method="post" action="/login"> <table> <tr> <td>User Name:</td> <td><form:input path="username" /></td> </tr> <tr> <td>Password:</td> <td><form:password path="password" /></td> </tr> <tr> <td></td> <td><input type="submit" value="Login" /></td> </tr> </table> </form:form> 5. 在控制器中添加登录处理逻辑,并使用Spring Security提供的接口进行验证,如: @RequestMapping(value = "/login", method = RequestMethod.POST) public String login(@ModelAttribute("user") User user, BindingResult result, HttpServletRequest request, Model model) { UserDetails details = userDetailsService.loadUserByUsername(user.getUsername()); UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(details.getUsername(), user.getPassword(), details.getAuthorities()); try { Authentication auth = authenticationManager.authenticate(token); SecurityContextHolder.getContext().setAuthentication(auth); HttpSession session = request.getSession(true); session.setAttribute("SPRING_SECURITY_CONTEXT", SecurityContextHolder.getContext()); return "redirect:/home"; } catch (AuthenticationException ex) { result.rejectValue("username", "invalidUserNameOrPassword"); return "login"; } } 以上就是一个简单的Spring Security登录验证案例,通过Spring Security的安全机制,可以为Web应用程序或系统提供可靠的登录验证机制,从而保证用户信息的安全性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值