2012-03-13 19 views
1

タイトルの言うとおり、私はSpringのセキュリティコアを使ってページを保護しようとしています。 Config.groovy内部に以下の設定を検討し、grails spring security coreプラグインによるURLマッピングの保護

"/"(view:'/home') 
"/page1"(view:'/page1') 
"/page2"(view:'/page2') 

grails.plugin.springsecurity.interceptUrlMap = [ 
    '/': ['IS_AUTHENTICATED_ANONYMOUSLY'], 
    '/**': ['IS_AUTHENTICATED_FULLY']   
] 

私が正しく理解していれば、私はできるはずです以下のURLマッピングを(home.gsppage1.gsp、およびpage2.gspが存在すると仮定)を検討セキュリティなしで家にアクセスするには、/page1または/page2にアクセスしようとするとログインページに移動する必要があります。残念ながら、これはそうではないようです。私はpage1とpage2に直接アクセスできます(例:http://localhost:8080/MyGrailsProject/page1)。

しかし、コントローラーの操作で@Secured注釈を試してみると、セキュリティが侵入します(リクエストはログインページにリダイレクトされます)。私の設定で何が問題になっているようですか? URLマップを保護するにはどうすればよいですか?

+0

'/ home/**':['IS_AUTHENTICATED_ANONYMOUSLY']をinterceptUrlMapに追加しようとしましたか? –

答えて

2

あなたは持っている:

grails.plugin.springsecurity.interceptUrlMap 

をそれは

grails.plugins.springsecurity.interceptUrlMap 

プラグイン上の注意する必要があります。

1

注釈を使用するのはデフォルトの方法です。あなたは、URLマップを使用することを好む場合でも、あなたが設定する必要があります。

grails.plugins.springsecurity.securityConfigType = "InterceptUrlMap" 

は、ドキュメントを参照してください:http://grails-plugins.github.com/grails-spring-security-core/docs/manual/guide/single.html#5.2%20Simple%20Map%20in%20Config.groovy

+0

うわー、私はすでに 'Config.groovy'に必要な設定をしており、私はまだ直接ページにアクセスできます。私は実際にコントローラを使用するという考えを実際に楽しんでいますが、私はすべての設定を1つのファイルで行うというアイデアは気に入っています(コントローラーのアクション全体に注釈として埋め込むのではなく)。 –

1

順序が重要であるが、あなたはトップinterceptUrlMapで最も制限1を持っている必要があります。

+0

パターンは常に定義された順序で評価されます。したがって、より具体的なパターンは、あまり具体的でないパターンよりもリスト内で高く定義されることが重要です。これは、より具体的な/ secure/super /パターンがあまり具体的でない/ secure /パターンよりも高く現れる上記の例に反映されています。それらが逆転した場合、/ secure /パターンは常に一致し、/ secure/super /パターンは決して評価されません。 –

関連する問題