UsernamePasswordAuthenticationToken 방식 claims -> new User()

This commit is contained in:
이진석
2020-01-31 16:27:30 +09:00
parent 088dd5b961
commit c8f1c96c02
3 changed files with 22 additions and 6 deletions

View File

@@ -1,5 +1,6 @@
package com.example.vue.config.security;
import com.example.vue.domain.user.User;
import com.example.vue.util.JwtUtil;
import io.jsonwebtoken.Claims;
import org.springframework.security.authentication.AuthenticationManager;
@@ -54,8 +55,8 @@ public class JwtAuthenticationFilter extends BasicAuthenticationFilter {
String role = (String) claims.get("role");
roles.add(new SimpleGrantedAuthority("ROLE_" + role));
return new UsernamePasswordAuthenticationToken(claims, null, roles);
// return new UsernamePasswordAuthenticationToken(claims, null, roles);
return new UsernamePasswordAuthenticationToken(new User(claims), null, roles);
}
}

View File

@@ -1,16 +1,23 @@
package com.example.vue.domain.user;
import io.jsonwebtoken.Claims;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
import javax.persistence.*;
import java.time.LocalDateTime;
import java.util.Collection;
@Entity
@Getter
@NamedQuery(name = "findByEmail", query = "select u from User u where u.email = :email")
public class User {
@NoArgsConstructor
public class User {
@Id @GeneratedValue
private Long id;
@@ -24,10 +31,19 @@ public class User {
@Column(name = "name")
private String name;
@Transient
private String role;
@CreatedDate
private LocalDateTime createdAt;
@LastModifiedDate
private LocalDateTime updatedAt;
public User(Claims claims) {
this.id = Long.valueOf(claims.get("userId").toString());
this.name = claims.get("name").toString();
this.role = claims.get("role").toString();
}
}

View File

@@ -1,7 +1,7 @@
package com.example.vue.domain.user;
import lombok.RequiredArgsConstructor;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -12,7 +12,6 @@ import org.springframework.web.bind.annotation.RestController;
public class UserController {
@GetMapping
public void getAuthenticationUser(Authentication authentication) {
System.out.println("Hello World");
public void getAuthenticationUser(@AuthenticationPrincipal User user) {
}
}