私たちは、Springの@preAuthorizeタグを使ってメソッドレベルのセキュリティを実装しようとしています。すべてがコンパイルされて正常に動作しますが、制限は発生しません。これは管理者のみの方法ですが、非管理者でもアクセスできます。preAuthorizeアノテーションが機能していないようです。
@PreAuthorize("(hasRole('ROLE_ADMIN'))")
public Some doIt(Some Input) {
do something;
return some;
}
しかし、誰もが何かの作品を持つことができます。
<http use-expressions="true" create-session="never" entry-point-ref="oauthAuthenticationEntryPoint" xmlns="http://www.springframework.org/schema/security" authentication-manager-ref="authManager">
<intercept-url pattern="/mocks/some-service" access="hasRole('ROLE_OTHER')" />
<form-login authentication-failure-url="/login.jsp" default-target-url="/login.jsp" login-page="/login.jsp"></form-login>
<custom-filter ref="resourceServerFilter" after="EXCEPTION_TRANSLATION_FILTER" />
</http>
<security:global-method-security pre-post-annotations="enabled" />
そしてここでは、メソッド自体である:ここでは、文脈でそれを設定した方法です。私は何が欠けていますか?どんな助けでも大歓迎です。
http://static.springsource.org/spring-security/site/faq/faq.html#faq-method-security-in-web-contextこのリンクは、サービスレイヤメソッドを保護するアドバイスです。それらは他のプライベート/パブリックメソッドで頻繁に使用されます。 –
本当にあります! PreAuthorizeは最初に呼び出されたメソッドで正しく呼び出されました。その後、そのメソッドが同じクラスの別のセキュリティで保護されたメソッドを呼び出すときに呼び出されませんでした。さまざまなハンドラと評価者を経て、時代を過ごしました。これはすべてでした.... – muttonUp
「公共の方法だけで仕事」のおかげで、誤解を招くのは、メソッドがリクエストを処理するために登録されていて、 – Bax