早上好,
我一直在寻找我的Spring安全配置,我想知道如何将所有指向例如/ foo / *的路径重定向到特定网址。 我需要做一些与没有会话时类似的事情,我们会重定向到登录页面。
就我而言,我需要指向/ foo / *的任何网址都会重定向到in_development_page.html。
我想使用拦截模式,如果可能的话,就像这样。
<intercept-url pattern="/foo/*" redirect="in_development_page.html"/>
你知道这样的事情是否可能吗?。
问候。
答案 0 :(得分:4)
您可以使用拦截器:
<mvc:interceptor>
<mvc:mapping path="/foo/**"/>
<bean class="com.interceptors.AuthorizationInterceptor" />
</mvc:interceptor>
假设我们要检查会话,那么您可以在AuthorizationInterceptor
中编写代码,如:
if(UserSession.isSessionValid()){
System.out.println("ready to enter");
return true;
}else{
System.out.println("not logged in...redirecting to login");
response.sendRedirect("/in_development_page");
return false;
}
这里UserSession
是我的类,它有会话变量。
如果您只想重定向,则可以删除if
&amp;的代码。只通过response.sendRedirect()
。
in参数传递正在开发的页面URL
。
全班代码:
public class AuthorizationInterceptor extends HandlerInterceptorAdapter {
@Autowired
private IUserSession UserSession;
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("interceptor called for " + request.getRequestURI());
if(UserSession.isSessionValid()){
System.out.println("ready to enter");
return true;
}else{
System.out.println("not logged in...redirecting to login");
response.sendRedirect("/in_development_page");
return false;
}
}
}
这里的课将扩展HandlerInterceptorAdapter
春课。