Current user principal is not of type
: Current user principal is not of type [org.springframework.security.oauth2.client.authentication.OAuth2AuthenticationToken]:
ArticleController@GetMapping("/articles/{id}")
public String getArticle(OAuth2AuthenticationToken oauthToken,@PathVariable Long id, Model model){
Article article = articleService.findById(id);
String nowUserEmail="";
if(oauthToken!=null){
System.out.println("oauth 가져옴: "+oauthToken.getPrincipal());
}
oauth 가져옴: Name: [.........!!], Granted Authorities: [[OAUTH2_USER,There was an unexpected error (type=Internal Server Error, status=500).
Current user principal is not of type [org.springframework.security.oauth2.client.authentication.OAuth2AuthenticationToken]: UsernamePasswordAuthenticationToken [Principal=org.springframework.security.core.userdetails.User [...] 이렇게 나온다.. @GetMapping("/articles/{id}")
public String getArticle(Authentication authentication,@PathVariable Long id, Model model){
if(authentication instanceof OAuth2AuthenticationToken){
OAuth2AuthenticationToken auth2AuthenticationToken=(OAuth2AuthenticationToken) authentication;....
}
if(authentication instanceof UsernamePasswordAuthenticationToken) {
UsernamePasswordAuthenticationToken userPassAuthToken=(UsernamePasswordAuthenticationToken) authentication;
There was an unexpected error (type=Internal Server Error, status=500).
Query did not return a unique result: 2 results were returned
org.springframework.dao.IncorrectResultSizeDataAccessException: Query did not return a unique result: 2 results were returned
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:305)
Like like=articleService.findLikeByArticle(id);public class ArticleService {
public Like findLikeByArticleAndUser(long id,String userName){
Article article= articleRepository.findById(id).orElseThrow(()->
new IllegalArgumentException("not found: "+id));
return likeRepository.findByArticleAndUserName(article,userName);
}
}
public class Like {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="id",updatable = false)
private Long id;
@Column(name="user_name",nullable = false)
private String userName;
@CreatedDate
@Column(name="created_at")
private LocalDateTime createdAt;
@ManyToOne
private Article article;
public interface LikeRepository extends JpaRepository<Like,Long> {
Like findByArticleAndUserName(Article article,String userName);
}