UserDetailsExtended.java
/**
* TFG 75.678 - TFG Desarrollo web 2020 e-Learning for Schools
* Copyright (C) 2020 Eduardo Rodriguez Carro
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.uoc.tfg.sel.security.model;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
import org.uoc.tfg.sel.repository.model.User;
/**
* The Class UserDetailsExtended.
* @author Eduardo Rodriguez Carro
*/
public class UserDetailsExtended implements UserDetails {
/** The Constant serialVersionUID. */
private static final long serialVersionUID = 1L;
/** The session id. */
private String sessionId;
/** The user. */
private final User user;
/** The authorities. */
private List<GrantedAuthority> authorities;
/**
* Instantiates a new user details extended.
*
* @param userDetail the user detail
*/
public UserDetailsExtended(User userDetail) {
this.user = userDetail;
authorities = new ArrayList<>();
if( this.user.getType() != null && this.user.getType().getRoles() != null) {
for (String auth : this.user.getType().getRoles() ) {
authorities.add(new SimpleGrantedAuthority(auth));
}
}
}
/**
* Gets the id.
*
* @return the id
*/
public Integer getId() {
return user.getId();
}
/**
* Gets the user.
*
* @return the user
*/
public User getUser() {
return user;
}
/**
* Gets the authorities.
*
* @return the authorities
*/
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
return authorities;
}
/**
* Gets the password.
*
* @return the password
*/
@Override
public String getPassword() {
return this.user.getPassword();
}
/**
* Gets the username.
*
* @return the username
*/
@Override
public String getUsername() {
return this.user.getLogin();
}
/**
* Checks if is account non expired.
*
* @return true, if is account non expired
*/
@Override
public boolean isAccountNonExpired() {
return isEnabled();
}
/**
* Checks if is account non locked.
*
* @return true, if is account non locked
*/
@Override
public boolean isAccountNonLocked() {
return isEnabled();
}
/**
* Checks if is credentials non expired.
*
* @return true, if is credentials non expired
*/
@Override
public boolean isCredentialsNonExpired() {
return isEnabled();
}
/**
* Checks if is enabled.
*
* @return true, if is enabled
*/
@Override
public boolean isEnabled() {
return true;
}
/**
* Gets the session id.
*
* @return the session id
*/
public String getSessionId() {
return sessionId;
}
/**
* Sets the session id.
*
* @param sessionId the new session id
*/
public void setSessionId(String sessionId) {
this.sessionId = sessionId;
}
}