大家好,我们正在努力为我们的网络应用程序实现一些功能, 我们将Spring Framework v4.1.1和Spring Security v3.1.7用于Web App。 我们使用自定义身份验证提供程序进行身份验证过程,一切正常, 但是当我们尝试使用Spring Security中的JSP标记为页面中的特定角色隐藏某些内容时,它不起作用。
这是我们的security-conf.xml
<http pattern="/resources/**" security="none" />
<http use-expressions="true">
<form-login login-page="/login" authentication-failure-url="/loginerroneo"
default-target-url="/seleccionar-empresa" always-use-default-target="true"/>
<logout logout-success-url="/login" logout-url="/salir"/>
<session-management invalid-session-url="/login" />
</http>
<authentication-manager>
<authentication-provider user-service-ref="userDetailsService">
</authentication-provider>
</authentication-manager>
<global-method-security pre-post-annotations="enabled"/>
<beans:bean id="userDetailsService" class="com.grupo.seguridad.acceso.service.impl.UserDetailsServiceAdapater"/>
当我们在页面中使用此标记<sec:authentication property="principal.authorities"/>
时,我们得到了
[VENDEDOR,ADMINISTRADOR]这是正确的。
但是当我们尝试使用标记隐藏页面的某些内容时:
<sec:authorize access="hasRole('ADMINISTRADOR')">
<button class="btn btn-small btnGuardar" href="#dlgGuardar" data-toggle="modal">
<i class="icon-hdd"></i> <strong>Una Opcion</strong>
</button>
</sec:authorize>
它不起作用。
我们不知道我们做错了什么。 谢谢你的帮助 最诚挚的问候,
答案 0 :(得分:2)
试试这个,
<security:authorize ifAnyGranted="ADMINISTRADOR">
<button class="btn btn-small btnGuardar" href="#dlgGuardar" data-toggle="modal">
<i class="icon-hdd"></i> <strong>Una Opcion</strong>
</button>
</security:authorize>
答案 1 :(得分:0)
我使用的是Spring Security 4.2并且无法使用hasRole方法... 但是这段代码对我有用:
<security:authorize access="hasAuthority('ROLE_ADMIN')">
you are an admin!
<security:authorize>