我正在Tomcat 6上使用多后端webapp(使用Java 6)。我使用带有LDAP的spring-security(3.1.0.RELEASE)来检查登录密码和自定义填充程序以从我的数据库中获取角色。一切正常。
我还使用Pretty-faces 3.3.2来解析URL。
我的populator看起来像
public abstract class MyAuthoritiesPopulator implements LdapAuthoritiesPopulator {
@Autowired
private UserService userService;
@Override
public final Collection<? extends GrantedAuthority> getGrantedAuthorities(DirContextOperations userData, String username) {
final List<GrantedAuthority> authorities = newArrayList();
authorities.addAll(userService.findRoleFromDataBase(...));
return authorities;
}
在我的webapp中,我使用URL来选择目标后端。
我的网址看起来像www.mycorp.com/mywebapp/myaction/mylang/mybackend/someotherparam ... 例如,如果mybackend参数等于“45”,那么我将获得SIMPLE_USER角色。如果mybackend参数等于“32”,那么我将获得ADMIN和TRANSLATOR角色。等
一旦我连接(即LDAP的登录密码正常),我就可以从一个后端切换到另一个后端,只需更改URL即可。但是我如何让Spring-security重新加载(即重新填充)角色,具体取决于mybackend参数。
请求帮助。 个。