在我的应用程序中,我想验证索引页面,所以在上下文中我添加:
<!-- Security -->
<security:http create-session="never" use-expressions="true">
<security:intercept-url pattern="/index.jsp" access="hasRole('MY_ROLE')" />
<security:http-basic entry-point-ref="basicAuthenticationEntryPoint" />
</security:http>
当我去地址时,这个工作正常:http://localhost:31103/my_app/index.jsp
问题是当我输入重定向到索引的地址http://localhost:31103/my_app/时,就没有认证。那么我该如何验证这些案例呢?
答案 0 :(得分:0)
尝试将intercept-url pattern
值更改为"/"
答案 1 :(得分:0)
当用户输入http://localhost:31103/my_app/将用户重定向到登录页面时,不是将用户重定向到索引页面,而是检查用户是否已经过身份验证,如果是,则将其重定向到索引页面。
@RequestMapping(value = "/login")
public ModelAndView login(HttpServletRequest arg0, HttpServletResponse arg1) {
ModelAndView model = new ModelAndView("login");
Authentication auth=SecurityContextHolder.getContext().getAuthentication();
if(!(auth instanceof AnonymousAuthenticationToken)){
model.setViewName("redirect:/index");
}
return model;
}