diff options
Diffstat (limited to 'mod2/auth-service/src/main/java/org/onap/dcaegen2/platform/mod/security/services/UserDetailsImpl.java')
-rw-r--r-- | mod2/auth-service/src/main/java/org/onap/dcaegen2/platform/mod/security/services/UserDetailsImpl.java | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/mod2/auth-service/src/main/java/org/onap/dcaegen2/platform/mod/security/services/UserDetailsImpl.java b/mod2/auth-service/src/main/java/org/onap/dcaegen2/platform/mod/security/services/UserDetailsImpl.java new file mode 100644 index 0000000..82cb577 --- /dev/null +++ b/mod2/auth-service/src/main/java/org/onap/dcaegen2/platform/mod/security/services/UserDetailsImpl.java @@ -0,0 +1,127 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed under the Apache License, Version 2.0 (the "License"); + * * you may not use this file except in compliance with the License. + * * You may obtain a copy of the License at + * * + * * http://www.apache.org/licenses/LICENSE-2.0 + * * + * * Unless required by applicable law or agreed to in writing, software + * * distributed under the License is distributed on an "AS IS" BASIS, + * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * * See the License for the specific language governing permissions and + * * limitations under the License. + * * ============LICENSE_END========================================================= + * + */ + +package org.onap.dcaegen2.platform.mod.security.services; + +import org.onap.dcaegen2.platform.mod.models.ModUser; +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.EqualsAndHashCode; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.core.userdetails.UserDetails; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @author + * @date 09/08/2020 + * User Details Implementation + */ +@EqualsAndHashCode +public class UserDetailsImpl implements UserDetails{ + + private static final long serialVersionUID = 1L; + + private String id; + + private String username; + + private String fullName; + + @JsonIgnore + private String password; + + private Collection<? extends GrantedAuthority> authorities; + + public UserDetailsImpl(String id, String username, String fullName, String password, Collection<? + extends GrantedAuthority> authorities) { + this.id = id; + this.username = username; + this.fullName = fullName; + this.password = password; + this.authorities = authorities; + } + + public static UserDetails build(ModUser user) { + List<GrantedAuthority> authorities = user.getRoles().stream() + .map(role -> new SimpleGrantedAuthority(role.getName())) + .collect(Collectors.toList()); + + return new UserDetailsImpl( + user.get_id(), + user.getUsername(), + user.getFullName(), + user.getPassword(), + authorities + ); + } + + public String getId() { + return id; + } + + @Override + public Collection<? extends GrantedAuthority> getAuthorities() { + return authorities; + } + + public List<String> getAuthoritiesAsList(){ + return authorities.stream().map(GrantedAuthority::getAuthority) + .collect(Collectors.toList()); + } + + @Override + public String getPassword() { + return password; + } + + @Override + public String getUsername() { + return username; + } + + public String getFullName() { + return fullName; + } + + @Override + public boolean isAccountNonExpired() { + return true; + } + + @Override + public boolean isAccountNonLocked() { + return true; + } + + @Override + public boolean isCredentialsNonExpired() { + return true; + } + + @Override + public boolean isEnabled() { + return true; + } +} |