JwtUser.java 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package com.izouma.nineth.security;
  2. import com.fasterxml.jackson.annotation.JsonIgnore;
  3. import com.izouma.nineth.domain.User;
  4. import org.springframework.security.core.GrantedAuthority;
  5. import org.springframework.security.core.userdetails.UserDetails;
  6. import java.time.ZoneId;
  7. import java.util.Collection;
  8. import java.util.Date;
  9. import java.util.Optional;
  10. /**
  11. * Created by stephan on 20.03.16.
  12. */
  13. public class JwtUser implements UserDetails {
  14. private static final long serialVersionUID = 5803985158027956021L;
  15. private final Collection<? extends GrantedAuthority> authorities;
  16. private final Date lastPasswordResetDate;
  17. private final User user;
  18. public JwtUser(User user, Collection<? extends GrantedAuthority> authorities) {
  19. this.authorities = authorities;
  20. this.lastPasswordResetDate = Date.from(user.getCreatedAt().atZone(ZoneId.systemDefault()).toInstant());
  21. this.user = user;
  22. }
  23. @JsonIgnore
  24. public Long getId() {
  25. return user.getId();
  26. }
  27. @Override
  28. public String getUsername() {
  29. return Optional.ofNullable(user.getId()).map(Object::toString).orElse(null);
  30. }
  31. @JsonIgnore
  32. @Override
  33. public boolean isAccountNonExpired() {
  34. return true;
  35. }
  36. @JsonIgnore
  37. @Override
  38. public boolean isAccountNonLocked() {
  39. return true;
  40. }
  41. @JsonIgnore
  42. @Override
  43. public boolean isCredentialsNonExpired() {
  44. return true;
  45. }
  46. @JsonIgnore
  47. @Override
  48. public String getPassword() {
  49. return user.getPassword();
  50. }
  51. @Override
  52. public Collection<? extends GrantedAuthority> getAuthorities() {
  53. return authorities;
  54. }
  55. @Override
  56. public boolean isEnabled() {
  57. return !user.isDel();
  58. }
  59. @JsonIgnore
  60. public Date getLastPasswordResetDate() {
  61. return lastPasswordResetDate;
  62. }
  63. public User getUser() {
  64. return user;
  65. }
  66. }