1. 首页
  2. 软件开发
  3. SpringSecurity——Web权限方案用户认证(自定义用户登录页面)

SpringSecurity——Web权限方案用户认证(自定义用户登录页面)

  • 发布于 2024-08-17
  • 2 次阅读

实现Spring Security中自定义用户登录页面的方式,通常需要以下步骤:配置登录页面、配置登录处理URL、配置登录成功和失败处理器等。

详细步骤如下:

  1. 配置自定义登录页面:创建一个自定义的登录页面,例如login.html。

  2. 配置登录处理URL:指定登录页面的URL和登录请求的处理URL。

  3. 配置登录成功和失败处理器:配置登录成功和失败的处理器,例如成功后重定向到指定页面,失败后显示错误信息。

代码如下:

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
   

    @Override
    protected void configure(HttpSecurity http) throws Exception {
   
        http
            .authorizeRequests()
                .antMatchers("/login").permitAll()
                .anyRequest().authenticated()
                .and()
            .formLogin()
                .loginPage("/login")
                .loginProcessingUrl("/login")
                .defaultSuccessUrl("/home")
                .failureUrl("/login?error=true")
                .and()
            .logout()
                .logoutSuccessUrl("/login")
                .and()
            .csrf().disable();
    }

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
   
        auth
            .inMemoryAuthentication()
            .withUser("user")
            .password(passwordEncoder().encode("password"))
            .roles("USER");
    }

    @Bean
    public PasswordEncoder passwordEncoder() {
   
        return new BCryptPasswordEncoder();
    }
}

在上面的代码中,通过 configure() 方法配置了自定义用户登录页面。我们指定了登录页面的URL为"/login",登录请求的处理URL也为"/login"。同时配置了登录成功后的默认跳转页面为"/home",登录失败后的跳转页面为"/login?error=true"。在 configure() 方法中,配置了一个内存中的用户信息,用户名为"user",密码经过BCrypt加密后的值为"password",拥有"USER"角色。

通过这样的配置,Spring Security会使用自定义的登录页面进行用户认证。用户访问"/login"页面进行登录,登录成功后跳转到"/home"页面,登录失败则显示错误信息。这种方式可以实现自定义用户登录页面的需求。

原文链接: https://blog.csdn.net/2401_82884096/article/details/138200870