如何使链接仅在经过身份验证的用户具有通讯权限时才可见?Spring Security基础知识
我正在使用JSF,据我所知,我应该使用组件的rendered
属性,它应该调用backing bean的布尔方法。
前段时间我甚至发现了代理代码,但现在我再也找不到它了。那么,谁能给我一个这样的布尔方法的例子与弹簧安全? (或者,甚至更好,链接到描述这个问题的一些文章)。
如何使链接仅在经过身份验证的用户具有通讯权限时才可见?Spring Security基础知识
我正在使用JSF,据我所知,我应该使用组件的rendered
属性,它应该调用backing bean的布尔方法。
前段时间我甚至发现了代理代码,但现在我再也找不到它了。那么,谁能给我一个这样的布尔方法的例子与弹簧安全? (或者,甚至更好,链接到描述这个问题的一些文章)。
我们使用SecurityContextHolder访问当前登录的用户。然后,我们使用用户getAuthorities()方法获取她的角色,从而产生(大致)以下内容:
((UserDetails)SecurityContextHolder.getPrincipal()).getAuthorities();
的rendered
属性(和disabled
和readonly
)不一定指望它返回boolean
这样的吸气剂的方法:
public boolean getBooleanValue() {
return this.booleanValue;
}
这些属性只是希望一个布尔表达,其可以是下列任一例子:
<h:someComponent rendered="#{myBean.booleanValue}" />
<h:someComponent rendered="#{myBean.intValue > 10}" />
<h:someComponent rendered="#{myBean.objectValue == null}" />
<h:someComponent rendered="#{myBean.stringValue != 'someValue'}" />
<h:someComponent rendered="#{!empty myBean.collectionValue}" />
<h:someComponent rendered="#{!myBean.booleanValue && myBean.intValue != 0}" />
<h:someComponent rendered="#{myBean.stringValue == 'oneValue' || myBean.stringValue == 'anotherValue'}" />
的is
前缀是顺便还允许boolean
个干将:
public boolean isBooleanValue() {
return this.booleanValue;
}
你可以用任何API Spring Security的在吸气使用,并在布尔EL表达式使用它在前述方法之一。
你可以使用的Acegi的JSF组件:http://cagataycivici.wordpress.com/2006/01/19/acegi%5Fjsf%5Fcomponents%5Fhit%5Fthe/
基本上你应该访问的主要检查其统治地位。
这篇文章已超过3岁,与此同时,Acegi被Spring以名称接管。是的,Spring Security。 – BalusC 2009-12-25 15:45:32
..并解决特定问题,将其包装在一个getter中,并在布尔表达式中使用它。 – BalusC 2009-12-25 15:46:10