2017-09-06 9 views
1

Springにはまったく新しいので、これは基本的なものかもしれません。 最近Spring3から4に移行し、新しいビジネスロジック特定のURLでのヘッダーの無効化

に関連付けられた新しいdefaultsというヘッダーの問題が発生しました。特定のURL「/ stg/strategem/STRG/drammin.syg」

現在、我々は持っている:

<http use-expressions="true" entry-point-ref="web.AuthenticaionEntryPoint"> 
    <intercept-url pattern="/admin/**" access = "hasAnyRole('GKR_ADMIN', 'GKR_ADMIN_ADV')"/> 
    <intercept-url pattern="/**" access = "hasAnyRole('GKR_USER')"/> 
</http> 
ように私はこれを設定するにはどうすればよい

[ "/stg/strategem/strg/drammin.sygが"]まだ確保されているが、あります下のヘッダー設定が適用される場所のみ?

<headers defaults-disabled="true"> 
    <content-type-options /> 
    <hsts include-subdomains="true" max-age-seconds="31536000"/> 
    <frame-options policy="SAMEORIGIN"/> 
    <xss-protection block="false"/> 
</headers> 

UPDATE 1:私は

UPDATEヘッダレスは、より具体的な必要URLを作ることができた2:私はちょうど別のhttpブロックを追加してみましたが、私は春のエラー

を得続ける ユニバーサルマッチパターン( '/ **') は、フィルタチェーン内の他のパタ​​ーンの前に定義され、無視されます。

これらのブロックをどのような順序で配置しても、私は「/ **」パターンを削除しようとしましたが、このエラーは引き続き発生します。

私の試み:

<http use-expressions="true" entry-point-ref="web.AuthenticaionEntryPoint"> 
    <intercept-url pattern="/admin/**" access = "hasAnyRole('GKR_ADMIN', 'GKR_ADMIN_ADV')"/> 
    <intercept-url pattern="/**" access = "hasAnyRole('GKR_USER')"/> 
</http> 

<http use-expressions="true" entry-point-ref="web.AuthenticaionEntryPoint">  
    <headers defaults-disabled="true"> 
     <content-type-options /> 
     <hsts include-subdomains="true" max-age-seconds="31536000"/> 
     <frame-options policy="SAMEORIGIN"/> 
     <xss-protection block="false"/> 
    </headers> 

    <intercept-url pattern="/stg/strategem/strg/drammin.syg" access = "hasAnyRole('GKR_ADMIN', 'GKR_ADMIN_ADV', 'GKR_USER')"/> 
</http> 

UPDATE 3:、解決策を見つけるあなたはそれぞれに異なる設定を持つ複数の<http>ブロックを持つことができるはず回答

答えて

0

申し訳ありませんが、私はこのパターンを持つ別個のHTTPブロックを使用してこの動作を得ることができましたが、インターセプトURLはありませんでした。どちらにもセキュリティ設定があるようにしようとすると、問題の原因となっていました。

私に正しい道を教えてくれてありがとうZilvinas。

最初のブロックは、特定のURLだけにヘッダー設定を適用します。他のすべてはSpringのデフォルトを取得します。 2番目のブロックはセキュリティ対策を適用します。 (私は/ **ワイルドカードを使用しているため、特定のURLを含む)

<http pattern="/stg/strategem/strg/drammin.syg">  
    <headers defaults-disabled="true"> 
     <content-type-options /> 
     <hsts include-subdomains="true" max-age-seconds="31536000"/> 
     <frame-options policy="SAMEORIGIN"/> 
     <xss-protection block="false"/> 
    </headers> 
</http> 

<http use-expressions="true" entry-point-ref="web.AuthenticaionEntryPoint"> 
    <intercept-url pattern="/admin/**" access = "hasAnyRole('GKR_ADMIN', 'GKR_ADMIN_ADV')"/> 
    <intercept-url pattern="/**" access = "hasAnyRole('GKR_USER')"/> 
</http> 
1

でそれをチェックアウトすることができました。 Spring Security Reference - Multiple Security

+0

朝のZilvinas、お問い合わせありがとうございます。 もう1つのHTTPブロックを追加しようとしましたが、私はスプリングエラー "ユニバーサルマッチパターン( '/ **') がフィルタチェーン内の他のパタ​​ーンよりも先に定義されているため無視してしまいます。 これらのブロックをどのような順序で配置しても、私は "/ **"パターンを削除しようとしましたが、このエラーは引き続き発生します。 私は主な質問に自分の試行を追加しました – OvaltineJenkins

+0

しかし、別のURLパターンでは別のロジックが必要だと言いました。まず* *パターンを使い、次に '/ **'を使ってください。 – Zilvinas

+0

私はその順序を試みましたが、それでも/ ** のように書かれています。 複数のHTTPブロックを指し示すと、多くの助けとなり、私は何が起こったのかを知ることができました。助けてくれてありがとう! – OvaltineJenkins

関連する問題