java - 将 Spring Security 移至 Java Config,authentication-success-handler-ref 去哪儿了?

标签 java spring spring-mvc spring-security

我们的应用有一个用于成功登录的自定义成功处理程序。它基本上将他们重定向到他们 session 到期时所在的页面。

我们正在转向 Java 配置而不是 spring xml 配置。配置的其余部分进行得非常顺利,但是我们找不到将 security:form-login 标记的 authentication-success-handler-ref 属性放在哪里。

<security:http auto-config='true'>
  ...
  <security:intercept-url pattern="/**" access="IS_AUTHENTICATED_FULLY"/>
  <security:form-login login-page="/login" default-target-url="/sites"
                     authentication-failure-url="/login"
                     authentication-success-handler-ref="authenticationSuccessHandler"/>
 ...

到目前为止,这是我们的配置。

  @Override
  protected void configure(HttpSecurity http) throws Exception {
    http
       .authorizeRequests()
          .anyRequest().authenticated()
          .and()
        .formLogin()
          .loginPage("/login")
          .failureUrl("/login")
          .and()
        .logout()
          .permitAll()
          .and()
  }

此外,我们找不到将 default-target-url 放在哪里,但这绝对不那么重要。

注意,我们实际上使用的是 Groovy,但代码与 Java 配置基本相同。

最佳答案

所有设置都可以在全局配置方法中完成。添加以下内容:

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
        .authorizeRequests()
          .anyRequest().authenticated()
          .and()
        .formLogin()
          .loginPage("/login")
          .defaultSuccessUrl("/sites")
          .failureUrl("/login")
          .successHandler(yourSuccessHandlerBean) // autowired or defined below
          .and()
        .logout()
          .permitAll()
          .and()
  }

关于java - 将 Spring Security 移至 Java Config,authentication-success-handler-ref 去哪儿了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21097528/

相关文章:

spring - 如何在 JWT 身份验证期间或之后设置自定义主体对象?

database - 带有数据库 : java. lang.ClassNotFoundException : org. springframework.security.core.userdetails.jdbc.JdbcDaoImpl 的 Spring Security 应用程序

tomcat - 配置 Spring MVC 应用程序

spring-mvc - centos 上的 Tomcat 与 mac 上的 tomcat 行为不同?

java - Spring JpaRepository : delete() with subsequent save() in the same transaction

java - 非常简单的 if else 语句不起作用。我做错了什么?

java - Spring Data JPA - javax.persistence.TransactionRequiredException : Executing an update/delete query

java - 在最大消息长度 : 2048 with payload-deserializing-transformer 之前未找到 CRLF

java - 建立网站的步骤

java - 是否有任何设计模式可以根据设备类型在数据之间切换?