我有一个spring服务,并希望在spring安全表达式中使用服务中的方法与当前用户相结合。我看到another question on stackoverflow让我相信这样的事情是可能的。我正在使用spring 3.1.2。
@Service("orgService")
public class DefaultOrganizationService implements OrganizationService {
@Override
@Transactional
public boolean isOrgAdmin(String username)
{
return true;
}
}
然后在jsp中,我有类似的东西:
<sec:authorize access="orgService.isOrgAdmin(principal.name)">
USER IS ORG ADMIN
</sec:authorize>
然而,当我使用此设置运行我的网络应用程序时,我得到了
org.springframework.expression.spel.SpelEvaluationException: EL1008E:(pos 0): Field or property 'orgService' cannot be found on object of type 'org.springframework.security.web.access.expression.WebSecurityExpressionRoot'
我尝试过使用“@orgService ...”和“orgService ...”
的表达式我正在尝试做什么,或者我是否需要实施PermissionEvaluator?
答案 0 :(得分:0)
@orgService
应该有效
[SEC-1723] - Support use of bean names in expressions via @beanName notation
<小时/>
I'm using spring 3.1.2.
我认为你使用的是旧版本的Spring Security,而不是Spring。