2017-01-19 19 views
1

Grails 2.4.4用にセキュリティシステムを設定しています(Grails - AngularjsSpring Security Rest Plugin v1.5.4(春のセキュリティコア2.0.0を使用) 。このプラグインに関する文書はhereです。404 Grails用Spring Security Rest Plugin

私はpostman chrome restクライアントでログインとログアウトをテストしていますが、ログインOKですが、ログアウトすると404が表示されます。ドキュメントで

はっきり言う:

ログアウトフィルタは、トークンを削除するためのエンドポイントを公開します。 は、HTTPヘッダーからトークンを読み取ります。見つかった場合は、 ストレージから削除し、200応答を送信します。そうでなければ、それは404 応答に

が送信されますあなたは、このプロパティを使用してConfig.groovyでそれを設定することができます。

コンフィグキー................. .................................................. ................ デフォルト 値

grails.plugin.springsecurity.rest.logout.endpointUrl .............. ......../api/logout grails.plugin.springsecurity.rest.token.validation.headerName .... X-Auth-トークン

だから、成功裡にログインを行った後、私は、GETメソッドでそのURL(my_host_url/API /ログアウト)にログアウトを実行しようとしましたし、トークンとヘッダーX-Authの-トークンを送るIログインから以前に取得した

しかし、私は

enter image description here

編集以下404参照用画像を取得しておいてください。私は(ステートレス動作を得るために)このような連鎖マップを設定しています:

grails.plugin.springsecurity.filterChain.chainMap = [ 
     '/api/**': 'JOINED_FILTERS,-exceptionTranslationFilter,-authenticationProcessingFilter,-securityContextPersistenceFilter,-rememberMeAuthenticationFilter', // Stateless chain 
     '/**': 'JOINED_FILTERS,-restTokenValidationFilter,-restExceptionTranslationFilter'                   // Traditional chain 
] 

So.私はここで間違って何をしていますか?何が欠けていますか?

ありがとうございます!

+0

あなたは "ログアウト"メソッドのコードを提供できますか?リソースマッピングには "取得"メソッドまたは適切な "パス"がありません。 – devbd

+0

@devbd、返信いただきありがとうございます!実際には、私は 'logout'メソッドを実装しませんでした。私はプラグインがこれを 'login'メソッドとして暗黙的に追加したと考えました。あれは正しいですか? – lealceldeiro

+0

プラグインのデフォルトログインURLを確認してください。私は、URLは "/ログアウト"のみでなければならないと思う.. – devbd

答えて

1

あなたはドキュメントから別の抜粋を逃しました。

サーバーに状態が保持されていないため、JWTトークン(デフォルト戦略)を使用するとログアウトできません。

ログアウトしたい場合は、JwtTokenStorageServiceのサブクラスを作成し、storeTokenremoveTokenのメソッドをオーバーライドして、独自の実装を提供できます。次に、実装をresources.groovyに登録してtokenStorageServiceとしてください。

+0

お返事ありがとうございました!はい、確かに私には明らかですが、「ログアウトフィルタはトークンを削除するためのエンドポイントを公開しています」と私は思っていました(このエンドポイント:/ api/logoutは、ヘッダ(X-Auth-Token)を作成し、サーバメモリ上のアクティブトークンなどのトークンを削除します。あれは正しいですか? ...これは、サーバーへのログアウトが必要な場合は、* JwtTokenStorageServiceのサブクラスを実装する必要があることを意味しますか?ところで、このプラグインのおかげで! ;) – lealceldeiro

関連する問題