我们在应用程序中使用PrincipalAware
接口来获取一些与用户相关的内容。
我在网上搜索得到的信息效果不佳,这就是我在Google上获得的信息:
公共接口PrincipalAware
希望从HttpServletRequest对象访问Principal信息的操作应实现此接口。
仅当在servlet环境中使用Action时,此接口才相关。通过使用此接口,您将不会与servlet环境绑定。
请帮助我理解。
答案 0 :(得分:3)
PrincipalAware
接口允许Struts将PrincipalProxy
对象注入动作实例。此代理可用于访问servlet安全机制。喜欢这个
public class MyAction extends ActionSupport implements PrincipalAware {
protected PrincipalProxy principal;
public void setPrincipalProxy(PrincipalProxy principalProxy) {
this.principal = principalProxy;
}
public PrincipalProxy getPrincipal() {
return principal;
}
}
现在,您可以在操作方法或视图图层中使用PrincipalProxy
<s:if test="principal.isUserInRole('role1')">
注意,如果要根据角色限制某些操作的执行,则可以使用roles
拦截器。