Spring Security @PostAuthorize anotation有时候工作不好

时间:2016-05-26 05:11:46

标签: java spring spring-security spring-security-acl

我使用Spring Security 4.1.0来保护我的java Web应用程序的安全性。我对@PostAuthorize方法使用了get注释,如下所示:

界面

@PreAuthorize("hasAuthority('get')")
@PostAuthorize("hasPermission(returnObject, 'read')")
MyEntity get(Serializable id);

get实施方法如下:

@Override
@Transactional
public MyEntity get(Serializable id)
{
   MyEntity record = dao.get(id);
   System.out.println(record.getId() + " : " + record.getName());
   return record;
}

web.xml中,我将sessionConfig设置如下:

<session-config>
     <session-timeout> 10 </session-timeout>
</session-config>

用户登录应用程序并调用get方法。用户不会在3分钟后向服务器发送请求。他向cal get方法发送了另一个请求。响应为403 Access Denied,此用户立即发送另一个相同的请求,但响应为 200 OK 。请参阅此请求:
403 回复:
enter image description here

并且200回复: enter image description here

Tomcat控制台记录如下2个案例:

538 : MyEntity 2

问题是什么

spring security错误吗?

0 个答案:

没有答案