2012-11-16 1 views
1

나는 스프링 서비스를 가지고 있으며 스프링 보안 표현에서 현재 사용자와 결합 된 서비스의 메소드를 사용하고자한다. 나는 이것이 가능하다고 믿게 만들었던 another question on stackoverflow을 보았다. 나는 봄 3.1.2를 사용하고있다. 나는이 설정 내 웹 응용 프로그램을 실행할 때스프링 보안 표현식에서 스프링 서비스 메소드를 사용하려면 어떻게해야합니까?

<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' 

:

@Service("orgService") 
public class DefaultOrganizationService implements OrganizationService { 
    @Override 
    @Transactional 
    public boolean isOrgAdmin(String username) 
    { 
     return true; 
    } 
} 

는 그 다음 JSP, 나는 이런 식으로 뭔가를 "@orgService ..."및 "orgService ..."가 모두 포함 된 표현

가능한 작업은 무엇입니까, 아니면 01을 구현해야합니까??

+0

'@'이 있든 없든 동일한 오류가 발생합니까? 둘 다 게시하십시오. 게시 한 오류는'@ '이없는 경우에 적합합니다. 나는'@ orgService..'에 대한 에러 메시지에 대해 궁금합니다. –

+0

"@"(프린시 펄 관련)과 다른 오류가있었습니다. "@"를 사용하면 실제로 스프링 보안이 빈 이름을 인식하게됩니다. – Jay

답변

0

@orgServiceVersion 3.1.0.RC2

[SEC-1723] - Support use of bean names in expressions via @beanName notation


I'm using spring 3.1.2.

난 당신이 봄 보안의 이전 버전을 사용하고 있는지 생각에서 시작하는 봄 보안을 위해 작동합니다, 봄 없습니다.

관련 문제