根据动态字段更改 url

Posted

技术标签:

【中文标题】根据动态字段更改 url【英文标题】:Change url based on dynamic field 【发布时间】:2018-03-30 12:18:14 【问题描述】:

有没有办法在用户登录系统后更改网址?例如,如果我的登录 url 是demo.xxx.com/login,则在用户通过身份验证后,我希望它更改为abc.xxx.com/dashboard。 abc 是用户组,在用户通过身份验证时确定。我的应用基于spring boot,使用spring security进行身份验证。

【问题讨论】:

【参考方案1】:

最简单的方法是在 spring security WebSecurityConfigurerAdapter bean 中设置默认成功 url。如果使用 XML 配置,我相信这也可以配置,虽然我不确定如何方便。

@Configuration
@EnableWebSecurity
public class AppSecurityConfiguration extends WebSecurityConfigurerAdapter 
    protected void configure( HttpSecurity http ) throws Exception 
        http.formLogin()
            .loginPage( "/login" )
            .defaultSuccessUrl( "/dashboard" );
    

如果您需要更好地控制重定向,您可以实现自己的身份验证成功处理程序并提供自定义重定向策略。

http.formLogin().successHandler( new SavedRequestAwareAuthenticationSuccessHandler() 
    
        setRedirectStrategy( new RedirectStrategy() 
            @Override
            public void sendRedirect( HttpServletRequest request, HttpServletResponse response, String url ) throws IOException 
                // Put your logic here for sending redirects
                response.sendRedirect("https://xyx.mydomain.com/dashboard");
            
         );
    
 );

【讨论】:

我必须在用户通过身份验证后以及进入 url 仪表板时设置 url。根据用户组,应修改 url。在身份验证期间,我没有这些信息来检查用户组。 @RequestMapping(value = "/portal/asset") public String dashboard(Model model) try model.addAttribute("1", "1");返回“仪表板”; 捕捉(异常 e) e.printStackTrace();返回“错误”;

以上是关于根据动态字段更改 url的主要内容,如果未能解决你的问题,请参考以下文章

Wordpress Contact Form 7 根据 url 动态选择下拉字段

将数字动态附加到 PDF 或使提交按钮根据该数字更改其 URL

SwiftUI:根据字符串长度动态更改字体大小

浏览器后退按钮更改动态 url 参数

如何根据用户输入动态更改 django 中的表单(提交前)

Oracle Apex 根据 LOV 选择的值动态启用/禁用文本字段