1

私は春のサービスを持っており、サービスのメソッドを現在のユーザーと組み合わせて春のセキュリティ式で使用したいと考えています。stackoverflow に関する別の質問を見て、このようなことが可能であると信じるようになりました。春の 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>

ただし、この設定で Web アプリを実行すると、

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を実装する必要がありますか?

4

1 に答える 1

0

@orgServiceバージョン 3.1.0.RC2以降の Spring Security では機能するはずです

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


I'm using spring 3.1.2.

Springではなく、古いバージョンのSpring Securityを使用していると思います。

于 2012-11-17T07:04:12.390 に答える