PreAuthroize和访问之间的区别

时间:2017-04-14 19:26:56

标签: spring spring-security

我在Spring Security中使用Spring MVC。我在我的安全XML中有这个:

<security:form-login 
        login-processing-url="/login/j_spring_security_check" 
        default-target-url="/home"
        authentication-failure-handler-ref="failureHandler"
        login-page="/login"
/>
<security:intercept-url pattern="/Queue/**" access="IS_AUTHENTICATED_FULLY" /> 
<bean id="successRedirectHandler" class="org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler">
    <property name="useReferer" value="true"/>
</bean>

当我拨打此网址时:

/Queue/Home.html

我正确地重定向到登录页面,我登录,然后我被重定向回/Queue/Home.html

但是,当我使用我的控制器和@PreAuthorize注释尝试相同的操作时:

@Controller
@RequestMapping(value = "/Queue")
public class QueueController {

    @PreAuthorize("hasRole('IS_AUTHENTICATED_FULLY')")
    @RequestMapping(value = "/Home", method = RequestMethod.GET)
    public String showQueue(HttpServletRequest request, HttpSession sess, ModelMap model) {
       .....  brilliant code
       return "some string";
    }

我被正确地重定向到登录页面,然后我登录,但后来我被重定向到

 /Queue/login

并发出一条消息,指出该页面不存在(因为它没有)。

我需要做些什么才能让@PreAuthorize使用successRedirectHandler吗?

0 个答案:

没有答案