Spring Security 3.1ではフォームベースの認証を使用しており、UserDetailsオブジェクトに追加の属性を配置したいと考えています

StackOverflow https://stackoverflow.com/questions/9367089

  •  28-10-2019
  •  | 
  •  

質問

私は Springs の初心者であり、Java の上級プログラマーではありません。

Springsセキュリティを使用するプロトタイプを作成しています。シンプルにするために、私はJSPフォームベースのユーザー認証を使用しており、applicationContext-security.xmlにダミーユーザーをいくつか入れています。

<security:http auto-config='true'>
  <security:intercept-url pattern="/**" access="ROLE_USER" />
</security:http>

<security:authentication-manager>
  <security:authentication-provider>
    <security:user-service>
      <security:user name="foo" password="foo" authorities="ROLE_USER, ROLE_ADMIN" />
      <security:user name="bob" password="bob" authorities="ROLE_USER" />
    </security:user-service>
  </security:authentication-provider>
</security:authentication-manager>

将来的には、この認証方法が OpenId 認証に置き換えられるという考えです。

ここで必要なのは、ユーザーが認証されたら、認証されたユーザー名を使用してデータベーステーブルからユーザーの追加の詳細を取得し、それをSprings UserDetailsオブジェクトに入れて、いつでも利用できるようにすることです

私がこれまでに調べたことは、カスタム UserDetailsS​​ervice を作成する必要があるということです

私の質問は、スプリングの標準認証方法を使用している場合、カスタムの UserDetailsS​​ervice を作成する必要があるかということです。データベースから読み取った追加の詳細を保存したいだけです。

私は多くの例を検討しましたが、この特定の問題に答えられるものはありませんでした。また、私はこれらのテクノロジーにあまり慣れていないので。コードスニペットをどのように結び付ければよいのか分かりません。私を正しい方向に導いてくれると助かります

ありがとう

役に立ちましたか?

解決

はい。通常、カスタムが必要です UserDetailsService 拡張されたものを返します UserDetails 必要な追加プロパティを含むオブジェクト。SO を検索すると、次のような設定例がたくさん見つかります。 これです, 、 例えば。

厳密に言えば、使用する必要はありません。 UserDetailsService または実装する UserDetails (実装できます AuthenticationProvider 直接)、しかしそれは一緒にいるための最も簡単なアプローチであり、おそらくどこから始めるべきでしょう。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top