@PreAuthorize应该做什么?

时间:2017-10-20 20:42:28

标签: spring-mvc spring-security

我有crudspring-mcv的简单spring-security

一切正常运行

spring-security.xml

<b:bean id="handlerWeb1" class="org.springframework.security.web.access.expression.DefaultWebSecurityExpressionHandler">
    <b:property name="permissionEvaluator" ref="permissionEvaluator"/>
</b:bean>
<b:bean id="handlerMethod2" class="org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler">
    <b:property name="permissionEvaluator" ref="permissionEvaluator"/>
</b:bean>

<global-method-security pre-post-annotations="enabled">
    <expression-handler ref="handlerMethod2"/>
</global-method-security>

<http auto-config="true" use-expressions="true" >
    <expression-handler ref="handlerWeb1" />
    ...
</http>

记录器

INFO: Using bean 'handlerWeb1' as web SecurityExpressionHandler implementation
INFO: Using bean 'handlerMethod2' as method ExpressionHandler implementation

执行休闲方法时:

@RequestMapping("/page")
@PreAuthorize("hasPermission('page','list')")
public ModelAndView pages() {

    return modelAndView( ... ));
}

如果hasPermission('page','list')==true没有问题。

如果hasPermission('page','list')==false方法仍然呈现view,但传递给vatiables的{​​{1}}为空。

向: 当view时,会发生什么?

a)重定向到403

b)渲染变量为空的视图。

0 个答案:

没有答案