package<\/span> <\/span>com.example.reactivespringsecurityauthentication<\/span>;<\/span>
<\/span>import<\/span> <\/span>org.springframework.security.core.GrantedAuthority<\/span>;<\/span>
<\/span>import<\/span> <\/span>org.springframework.security.core.authority.SimpleGrantedAuthority<\/span>;<\/span>
<\/span>import<\/span> <\/span>org.springframework.security.core.userdetails.UserDetails<\/span>;<\/span>
<\/span>import<\/span> <\/span>javax.persistence.Entity<\/span>;<\/span>
<\/span>import<\/span> <\/span>java.util.Arrays<\/span>;<\/span>
<\/span>import<\/span> <\/span>java.util.Collection<\/span>;<\/span>
<\/span>import<\/span> <\/span>java.util.stream.Collectors<\/span>;<\/span>
<\/span>@Entity<\/span>
<\/span>public<\/span> <\/span>class<\/span> <\/span>User<\/span> <\/span>implements<\/span> <\/span>UserDetails<\/span> <\/span>{<\/span>
<\/span>private<\/span> <\/span>Account<\/span> <\/span>account<\/span>;<\/span>
<\/span>Collection<\/span><<\/span>GrantedAuthority<\/span>><\/span> <\/span>authorities<\/span>;<\/span>
<\/span>public<\/span> <\/span>User<\/span>(<\/span>Account<\/span> <\/span>account<\/span>,<\/span> <\/span>String<\/span>[]<\/span> <\/span>roles<\/span>)<\/span> <\/span>{<\/span>
<\/span>this<\/span>.<\/span>authorities<\/span> <\/span>=<\/span> <\/span>Arrays<\/span>.<\/span>asList<\/span>(<\/span>roles<\/span>)<\/span>
<\/span>.<\/span>stream<\/span>(<\/span>)<\/span>
<\/span>.<\/span>map<\/span>(<\/span>SimpleGrantedAuthority<\/span>:<\/span>:<\/span>new<\/span>)<\/span>
<\/span>.<\/span>collect<\/span>(<\/span>Collectors<\/span>.<\/span>toList<\/span>(<\/span>)<\/span>)<\/span>;<\/span>
<\/span>this<\/span>.<\/span>account<\/span> <\/span>=<\/span> <\/span>account<\/span>;<\/span>
<\/span>}<\/span>
<\/span>@Override<\/span>
<\/span>public<\/span> <\/span>Collection<\/span><<\/span>?<\/span> <\/span>extends<\/span> <\/span>GrantedAuthority<\/span>><\/span> <\/span>getAuthorities<\/span>(<\/span>)<\/span> <\/span>{<\/span>
<\/span>return<\/span> <\/span>authorities<\/span>;<\/span>
<\/span>}<\/span>
<\/span>@Override<\/span>
<\/span>public<\/span> <\/span>String<\/span> <\/span>getPassword<\/span>(<\/span>)<\/span> <\/span>{<\/span>
<\/span>return<\/span> <\/span>account<\/span>.<\/span>getPassword<\/span>(<\/span>)<\/span>;<\/span>
<\/span>}<\/span>
<\/span>@Override<\/span>
<\/span>public<\/span> <\/span>String<\/span> <\/span>getUsername<\/span>(<\/span>)<\/span> <\/span>{<\/span>
<\/span>return<\/span> <\/span>account<\/span>.<\/span>getUsername<\/span>(<\/span>)<\/span>;<\/span>
<\/span>}<\/span>
<\/span>@Override<\/span>
<\/span>public<\/span> <\/span>boolean<\/span> <\/span>isAccountNonExpired<\/span>(<\/span>)<\/span> <\/span>{<\/span>
<\/span>return<\/span> <\/span>account<\/span>.<\/span>isActive<\/span>(<\/span>)<\/span>;<\/span>
<\/span>}<\/span>
<\/span>@Override<\/span>
<\/span>public<\/span> <\/span>boolean<\/span> <\/span>isAccountNonLocked<\/span> |