Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring MVC-动态更改安全设置_Java_Spring Mvc_Spring Security - Fatal编程技术网

Java Spring MVC-动态更改安全设置

Java Spring MVC-动态更改安全设置,java,spring-mvc,spring-security,Java,Spring Mvc,Spring Security,我正在开发一个JavaSpringMVC应用程序,并使用基于Java的配置实现Spring安全性我需要动态更改一些Spring安全设置(在用户活动期间)。这是我代码的一部分: @Override protected void configure(HttpSecurity http) throws Exception { http .anyRequest().authenticated() .and() .

我正在开发一个JavaSpringMVC应用程序,并使用基于Java的配置实现Spring安全性我需要动态更改一些Spring安全设置(在用户活动期间)。这是我代码的一部分:

@Override
protected void configure(HttpSecurity http) throws Exception {

         http
            .anyRequest().authenticated()
            .and()
            .formLogin()
            .loginPage("/admin/login")
            ...

}

例如,在用户活动期间,我需要将
/admin/login
url更改为
客户/login

我只需在HTML中提供链接,一个用于客户,一个用于管理员:)

但我猜你不会问这对你来说是否是一个有效的解决方案。根据编写一个小解决方案的乐趣,您可以采用以下方法:

  • 为用户创建匿名会话以记住用户的上一个活动类别。如果SpringSecurity不能(轻松地)为您完成这项工作,只需将活动类别存储在cookie中即可。现在您可以选择解决方案(1)或(2)

  • 根据存储的信息,您可以动态决定将哪个目标登录url呈现到HTML页面中。通过这种方式,您可以动态链接正确的登录页面
  • 解决方案(1)的缺点是,您必须根据存储的值在每个控制器中设置正确的目标url。也许更好的方法是让HTML始终指向同一个登录调度器控制器,并根据存储的活动类别将请求转发到正确的登录页面

我只需在HTML中提供链接,一个用于客户,一个用于管理员:)

但我猜你不会问这对你来说是否是一个有效的解决方案。根据编写一个小解决方案的乐趣,您可以采用以下方法:

  • 为用户创建匿名会话以记住用户的上一个活动类别。如果SpringSecurity不能(轻松地)为您完成这项工作,只需将活动类别存储在cookie中即可。现在您可以选择解决方案(1)或(2)

  • 根据存储的信息,您可以动态决定将哪个目标登录url呈现到HTML页面中。通过这种方式,您可以动态链接正确的登录页面
  • 解决方案(1)的缺点是,您必须根据存储的值在每个控制器中设置正确的目标url。也许更好的方法是让HTML始终指向同一个登录调度器控制器,并根据存储的活动类别将请求转发到正确的登录页面

@AlanHay我需要根据某些条件动态更改
expiredUrl
。换句话说,在
条件1
中,我想在用户会话超时时将其重定向到
/x1/login
,在
条件2
中,我想将其重定向到
/x2/login
。在当前设置中,当用户的会话超时时,spring将其重定向到
/x1/login
(默认登录页面)。您能帮助我吗?您的问题中提到的配置是全局级别的,而不是每个用户级别的,因此我看不出如何进行更改。@我需要根据某些条件动态更改
expiredUrl
。换句话说,在
条件1
中,我想在用户会话超时时将其重定向到
/x1/login
,在
条件2
中,我想将其重定向到
/x2/login
。在当前设置中,当用户的会话超时时,spring将其重定向到
/x1/login
(默认登录页面)。您能帮助我吗?您问题中提到的配置是全局级别的,而不是每个用户级别的,因此我看不出如何进行更改。