Spring Security Principalにカスタマイズして追加情報を追加しようとしています。そのようなこのSpringカスタムuserDetailはユーザ権限を設定します
How to add additional details to Spring Security userdetails
明示的にtrueに認証値を設定し、この例のように春のドキュメントともいくつかの例を見られて。例:
boolean enabled = true;
boolean accountNonExpired = true;
boolean credentialsNonExpired = true;
boolean accountNonLocked = true;
List<String> roles = new ArrayList<String>();
roles.add(domainUser.getRole().getName());
return new CustomSpringUser(
domainUser.getUsername(),
domainUser.getPassword().toLowerCase(),
enabled,
accountNonExpired,
credentialsNonExpired,
accountNonLocked,
getGrantedAuthorities(roles),
***domainUser.getAccount().getIdentificationId())*** ;
accountNonExpired、credentialsNonExpired ...などを手動でtrueに設定する代わりに、 User.RoleをチェックしてaccountNontExpired..etcの値を取得するAuthorityメソッドがありますか?
私は彼らが手動でAuthority ....を設定した別の例を見つけました。これは正しい方法ですか?
http://javahotpot.blogspot.in/2013/12/spring-security-adding-more-information.html
おかげ
"Springのデータベース認証を使用すると、accountNonExpired、credentialsNonExpiredなどのフィールドがデータベースの列から取得されます。 < - 本当ですか?これは、春のドキュメントhttp://docs.spring.io/spring-security/site/docs/current/reference/htmlsingle/#user-schemaからのユーザースキーマです。列には資格情報がありません。その他は、 –
@EricHuang Oh、あなたが正しいです。私はこれをLDAP認証と一緒に投げたと思う。 しかし、私は再びコードを見て、 'JdbcDaoImpl'は3つのフィールドを' true'に設定するだけです(https://github.com/spring-projects/spring-security/blob/master/core/を参照)。 src/main/java/org/springframework/security/core/userdetails/jdbc/JdbcDaoImpl.java)。だから同じことをするのは大丈夫です。 –
@EricHuang私は自分の答えを更新しました。 –