• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Spring 게시판 auth null 문제

auth null 문제

3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 글쓴이
  • #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 주 전에 수정됐습니다.
    #137200

    codingapple
    키 마스터
    로그인 후에 마이페이지 같은데 들어가서 auth 정보 잘 나오나 출력해봅시다
    #137245

    황유정
    참가자
    해결했습니다
    session timeout을 5초로 해둬서 그랬네요..
3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠