2011-11-11 12 views
0

私は以下のコードを適用しましたが、動作していませんでした。いずれか1つはこの解決策を教えてください。Spring @MVCコントローラにメソッドレベルのセキュリティを適用することは可能ですか?

コントローラ方法:

@Controller 
public class UserController { 
@Secured("ROLE_USER") 
@RequestMapping(value="user/{userName}", method=RequestMethod.GET) 
    public @ResponseBody User getAvailability(@PathVariable String userName, HttpServletResponse response) { } 
} 

のApplicationContext-のsecurity.xml関連の設定:

<global-method-security secured-annotations="enabled" /> 

    <http> 
     <intercept-url pattern="/user" requires-channel="https"/> 
     <http-basic/> 
    </http> 

    <authentication-manager alias="authenticationManager"> 
     <authentication-provider> 
      <user-service> 
       <user password="password" name="manager" authorities="ROLE_MANAGER"/> 
       <user password="password" name="user" authorities="ROLE_USER"/> 
      </user-service> 
     </authentication-provider> 
    </authentication-manager> 

答えて

0

あなたは<intercept_url>タグを使用してセキュリティを適用したいです。あなたは、URLベースのアクセス制御を使用したい場合は

<intercept-url pattern="/user" requires-channel="https" access="ROLE_USER"/> 
+0

こんにちは!あなたの返事に感謝します。私はそうしたやり方をしてきましたが、今では(新しいSpring Securityを使って)、同じアクセスを行うことができるようです。メソッドレベルで知っているのは、xml設定を直接行うのではなく、私たちはそれを特定の方法のために示すことができます。 – Channa

0

はあなたがメソッドレベルのセキュリティが必要な場合/ **

<intercept-url pattern="/user/**" requires-channel="https"/> 

、あなたが必要とする

を追加する必要があります。たとえば

<context:component-scan base-package="com.yourcompany.etc"/> 

<security:global-method-security secured-annotations="enabled"/> 

web.xmlでも、あなたのサーブレットにパラメータとしてスプリングセキュリティの設定を追加する必要があります

<servlet> 
    <servlet-name>myservlet</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>WEB-INF/applicationContext-security.xml</param-value> 
    </init-param> 
    <load-on-startup>2</load-on-startup> 
</servlet> 
+0

こんにちはPeter Szanto! @SecuredはSpring Controller(@Controller)で動作しません。 – Channa

+0

コントローラでも動作しますが、サーブレットのxmlにバネセキュリティ関連のXMLを追加する必要があります。少なくともはそこにあるはずです –

+0

セキュリティビーンをインポートする方法を示すために自分の答えを更新しました –

関連する問題