我正在使用 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 分钟后没有向服务器发送请求。get
他向 cal方法发送另一个请求。响应是403 Access Denied
,在此用户立即发送另一个相同的请求后,但响应是200 OK
。请参阅此请求:
403
响应:
Tomcat控制台登录2种情况如下:
538 : MyEntity 2
有什么问题?
这是一个spring security
错误吗?