Java 为匿名用户动态添加主体/权限

Java 为匿名用户动态添加主体/权限,java,spring,struts2,spring-security,Java,Spring,Struts2,Spring Security,我使用的是SpringSecurity2.x(+spring+struts2),希望在用户提交表单后能够动态地向用户添加权限 我有一个受保护的目录(/protected/dir/),它受角色\用户的保护 <sec:intercept-url pattern="/protected/dir/**" access="ROLE_USER, ROLE_ADMIN" /> 哪个用户登录后可以访问 我想通过向主体添加一个临时角色(可能不存在,因为用户尚未登录,所以我可能也必须将其添加到se

我使用的是SpringSecurity2.x(+spring+struts2),希望在用户提交表单后能够动态地向用户添加权限

我有一个受保护的目录(/protected/dir/),它受角色\用户的保护

<sec:intercept-url pattern="/protected/dir/**" access="ROLE_USER, ROLE_ADMIN" />

哪个用户登录后可以访问

我想通过向主体添加一个临时角色(可能不存在,因为用户尚未登录,所以我可能也必须将其添加到securityContext),使提交表单(未登录)的用户可以访问此文件

我已尝试访问SecurityContext并在控制器/操作类中添加新主体。但我无法获取SecurityContext。(我认为SecurityContext只在它自己的线程上运行,你不能传递它,这就是我得到NPE的原因)

那么,最好的方法是什么呢

请告知
谢谢

支持匿名用户的一种方法是添加此筛选器:

/**
* Detects if there is no Authentication object in the SecurityContextHolder, 
* and populates it with one if needed.
*/
org.springframework.security.providers.anonymous.AnonymousProcessingFilter
筛选器具有此属性,该属性将强制筛选器在请求完成后删除匿名会话:

 public void setRemoveAfterRequest(boolean removeAfterRequest);

如果用户未登录,则没有安全上下文。哦。。好啊那么,我如何自动登录用户并授予他临时访问文件夹的权限?