Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Entity
- @Table(name="ACCOUNT_USER")
- public class CustomUserDetails implements UserDetails {
- private static final long serialVersionUID = 1L;
- @Id
- @GeneratedValue(strategy = GenerationType.IDENTITY)
- @Column(name = "USER_ID")
- private long id;
- @NotBlank
- @Column(name = "USERNAME")
- private String username;
- @NotBlank
- @Column(name = "PASSWORD")
- private String password;
- @Column(name = "LOCKED")
- private boolean locked;
- @ManyToMany(cascade=CascadeType.ALL)
- @JoinTable(name = "USER_ROLE",
- joinColumns = @JoinColumn(name = "USER_ID"),
- inverseJoinColumns = @JoinColumn(name = "ROLE_ID"))
- private Set<CustomRole> roles;
- public CustomUserDetails(String username, String password, boolean enabled, boolean accountNonExpired, boolean credentialsNonExpired, boolean accountNonLocked, Collection<GrantedAuthority> authorities) { // jpa only
- this.setUsername(username);
- this.setPassword(password);
- this.roles = new HashSet<CustomRole>();
- for (GrantedAuthority authority: authorities) {
- roles.add(new CustomRole(authority.getAuthority()));
- }
- }
- public CustomUserDetails() { // jpa only
- }
- @Override
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- @Override
- public String getUsername() {
- return username;
- }
- public void setUsername(String username) {
- this.username = username;
- }
- public Set<CustomRole> getRoles() {
- return roles;
- }
- public void setRoles(Set<CustomRole> roles) {
- this.roles = roles;
- }
- @Override
- public Collection<GrantedAuthority> getAuthorities() {
- ArrayList<String> authoritiesList = new ArrayList<String>();
- for (CustomRole role: roles) {
- authoritiesList.add(role.getRole());
- }
- return AuthorityUtils.commaSeparatedStringToAuthorityList(String.join(",", authoritiesList));
- }
- //Some more getters and setters ...
- }
- @Entity
- @Table(name="ACCOUNT_ROLE")
- public class CustomRole {
- @Id
- @GeneratedValue(strategy = GenerationType.IDENTITY)
- @Column(name="ROLE_ID")
- private long id;
- @Column(name="ROLE")
- private String role;
- public long getId() {
- return id;
- }
- //delete if not necessary
- public void setId(long id) {
- this.id = id;
- }
- public String getRole() {
- return role;
- }
- public void setRole(String role) {
- this.role = role;
- }
- public CustomRole() {} //for jpa
- public CustomRole(String role) {
- this.role = role;
- }
- }
- public interface AccountRepository extends JpaRepository<CustomUserDetails, String>{
- public CustomUserDetails findByUsername(String username);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement