3 글 보임 - 1 에서 3 까지 (총 3 중에서)
-
글쓴이글
-
2025년 3월 18일 17:10 #137165
황유정참가자상세페이지에 댓글을 입력하고 전송하면 Cannot invoke "org.springframework.security.core.Authentication.getPrincipal()" because "auth" is null 이런 오류가 발생합니다 그래서 CommentController.java 에 PostMapping에 이런식으로 null에 대한 처리를 하고 진행하니 if (auth != null && auth instanceof UserPrincipal) { CustomUser user = (CustomUser) auth.getPrincipal(); data.setUsername(user.getUsername()); } 댓글 저장은 되지만 username은 비워진채로 저장이 됩니다 로그인을 하고 list 페이지에 들어가서 댓글을 달아도 똑같은 오류가 발생합니다 어떻게 해결해야하나요? [ SecurityConfig.java 코드 ] @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http.csrf((csrf) -> csrf.disable()); http.authorizeHttpRequests((authorize) -> authorize.requestMatchers("/**").permitAll() ); http.formLogin((formLogin) -> formLogin.loginPage("/login") .defaultSuccessUrl("/") ); http.logout(logout -> logout.logoutUrl("/logout")); return http.build(); } [ MyUserDetailsService.java 코드 ]
@Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { var result = memberRepository.findByUsername(username); if(result.isEmpty()){ throw new UsernameNotFoundException("해당 아이디는 존재하지 않습니다"); } var user = result.get(); List<GrantedAuthority> authorities = new ArrayList<>(); authorities.add(new SimpleGrantedAuthority("일반유저"));
var userInfo = new CustomUser(user.getUsername(),user.getPassword(),authorities); userInfo.displayName=user.getDisplayName();
return userInfo; } [ CustomUser.java 코드 ]
public class CustomUser extends User { public String displayName; public CustomUser( String username, String password, Collection<? extends GrantedAuthority> authorities) { super(username, password, authorities); }
}
-
이 게시글은
황유정에 의해 3 월, 1 주 전에 수정됐습니다.
-
이 게시글은
-
글쓴이글
3 글 보임 - 1 에서 3 까지 (총 3 중에서)
- 답변은 로그인 후 가능합니다.