Java 如何在提供登录凭据时重定向到特定页面
在使用SpringSecurity时,我提供了一个特殊的页面,其中有一个匿名用户角色Java 如何在提供登录凭据时重定向到特定页面,java,spring-mvc,spring-security,Java,Spring Mvc,Spring Security,在使用SpringSecurity时,我提供了一个特殊的页面,其中有一个匿名用户角色 <intercept-url pattern="/runApp*" access="hasAnyRole('User', 'Admin','ROLE_ANONYMOUS')" /> 在spring security的同一http标记中还有许多其他拦截URL。这是我的spring安全代码: <http auto-config="true" use-expressions="
<intercept-url pattern="/runApp*"
access="hasAnyRole('User', 'Admin','ROLE_ANONYMOUS')" />
在spring security的同一http标记中还有许多其他拦截URL。这是我的spring安全代码:
<http auto-config="true" use-expressions="true">
<intercept-url pattern='/welcome*' access="hasAnyRole('User', 'Admin')" />
<intercept-url pattern="/runApp*" access="hasAnyRole('User', 'Admin','ROLE_ANONYMOUS')" />
<form-login login-page="/login" authentication-failure-url="/login.jsp?login_error=true" default-target-url="/welcome" />
<logout logout-success-url="/login" invalidate-session="true" />
当用户首次登录时,它会重定向到欢迎页面。但当他想要访问runApp页面时,他必须在登录页面中提供他的凭据。但当他提供登录凭证时,它会重定向到欢迎页面。而我希望它重定向到特定的runApp页面
谢谢。在
表单login
元素中,名为的另一个属性始终使用默认目标,该属性定义登录后的重定向规则。如果此属性的值设置为false
,则只有在直接请求登录页面后,用户才会被重定向到默认目标url
。我找到了解决方法。这不是最好的解决办法,但是,如果有人有更好的东西要展示,我会洗耳恭听。当重定向到凭证的登录页面时,我正在会话中保存数据。当注册用户登录时,它会转到控制器,在那里我从会话中获取数据并将其重定向到所需页面。
感谢您的支持……:) 没有运气,还是一样,它再次重定向到欢迎页面。这是匿名用户可以访问的链接。当他粘贴到浏览器中时,他会被重定向到登录页面以获取他的凭据,以下是控制器中的代码。Authentication auth=SecurityContextHolder.getContext().getAuthentication();如果((auth instanceof AnonymousAuthenticationToken)){return“login”}那么当他使用正确的凭据登录时,他将被重定向到特定页面。如果此链接必须是不安全的,则将其放入另一个禁用安全性的http
元素中。在链接数据=12中,为特定用户建议不同的信息。因此,页面取决于字段“data”。某些注册用户希望这些数据仅由其他注册用户查看。因此,当注册用户在浏览器中粘贴此链接时,他将被引导到登录页面。当他登录时,它应该被重定向到特定的页面。但在我的情况下,默认情况下它将进入欢迎页面。