1

我正在使用 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响应:
在此处输入图像描述

200回应: 在此处输入图像描述

Tomcat控制台登录2种情况如下:

538 : MyEntity 2

有什么问题

这是一个spring security错误吗?

4

0 回答 0