根据动态字段更改 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 动态选择下拉字段