inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 시큐리티

5) DB 연동 인증 처리(2) : CustomAuthenticationProvider

안녕하세요. 현재 로그인한 사용자 정보 가져오는것에 대한 질문입니다.

372

qkrwnstns52

작성한 질문수 26

0

@GetMapping("/mypage")
public String myPage(Model model, Authentication authentication) throws Exception {
AccountContext ac = (AccountContext) authentication.getPrincipal();
model.addAttribute("info", ac.getUsername());
return "user/mypage";
}

바로 전 강의에서는 이 코드가 정상적으로 실행 됐는데,
이번 강의에서 추가적인 작업을 한 뒤에는 error page가 나옵니다..
혹시 이유와 어떻게 고쳐야하는지 알 수 있을까요???



spring-boot Spring Security java

답변 4

0

qkrwnstns52

json이 출력돼는 에러는 해결되었습니다. CustomauthenticationProvider을 사용하는 경우에는 여전히 controller에서 사용자 정보를 가져오질 못하네요.... 찾아보니깐 제약이 있다는거같은데 찾아서 공부해 보겠습니다. 감사합니다

0

정수원

{

  "timestamp" : 1586002411175,

  "status" : 999,

  "error" : "None",

  "message" : "No message available"

}

구글에서 검색해 보면 이 에러 메시지에 대한 이슈가 많이 나오고 있습니다.

처음 로그인 인증 후 /error 페이지로 이동하는데 다시 로그인을 시도하거나 로그인 이후 해당 페이지로 가면 저 현상이 없어집니다

그리고 일정 시간이 지난 후에 다시 로그인을 하게 되면 동일한 현상이 발생합니다.

스프링 시큐리티에서는 정적 자원에 대해서 보안을 적용하지 않도록 api 를 제공하고 있는데

CSS(new String[]{"/css/**"}),

JAVA_SCRIPT(new String[]{"/js/**"}),

IMAGES(new String[]{"/images/**"}),

WEB_JARS(new String[]{"/webjars/**"}),

FAVICON(new String[]{"/**/favicon.ico"});

이렇게 다섯가지로 설정이 되어 있습니다.

@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().requestMatchers(PathRequest.toStaticResources().atCommonLocations());
}

이렇게 설정하게 되면 자동적으로 위 다섯가지의 정적자원에 대해서 보안이 적용하지 않게 됩니다.

이슈에 대한 여러 답변들 중에 static 폴더안에 위의 폴더가 모두 생성되지 않을 경우 에러가 날 수 있다고 합니다.

폴더를 모두 생성해 보시고 시도해 보시기 바랍니다.

다른 답변으로는 

.formLogin()
.loginPage("/login")
.defaultSuccessUrl("/")
.loginProcessingUrl("/login_proc")
.permitAll();

에서 

.defaultSuccessUrl("/")

을 

.defaultSuccessUrl("/", true)

로 변경하는 것입니다.

그러면 로그인 후 항상 "/" 로 이동하는 것인데 개인적으로는 그렇게 추천할 사항은 아닙니다.

설정에서 다음과 같이 추가해 줘도 되는 것 같습니다.

spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration

제가 개인적으로 판단할 때는 정적자원과 관련되어 발생하는 오류인것으로 짐작하고 있습니다.

항상 발생하는 것은 아니고 어떤 특정한 상황에서 발생하는 것 같습니다.

0

qkrwnstns52

https://github.com/parkjunsun/practice_springSecurity 입니다

0

정수원

소스 공유 부탁드립니다

시큐리티 공부 버전 질문

0

175

1

[해결 방법] MethodSecurityConfig.customMethodSecurityMetadataSource() 호출하지 않는 이슈

0

185

1

AbstractSecurityInterceptor.class.beforeInvocation()를 2번 실행하는 경우

0

174

1

강의 코드가 왜이렇게 뒤죽박죽인가요...

0

249

1

메인 페이지로 접속해도 login url로 리다이렉트가 되지 않습니다..

0

235

1

파라미터값이 넘어가지 않습니다 ....

0

374

1

security filterChain 설정 질문이 있습니다.

0

330

1

소스 부분 질문 드립니다.

0

208

2

섹션4 7번 강의 문제가 있는거 같네요.

0

344

2

파일이 수시로 이름이 바껴있네요 ㄷㄷ

0

304

1

HttpSessionSecurityContextRepository를 사용안하는 문제

0

555

2

error , exception 이 잘 안됩니다.

0

278

2

thymeleaf tag 질문합니다.

0

196

2

버전업하면서 deprecated된 것들이 너무많아요

0

478

1

spring security 패치 관련

0

437

1

모바일을 사용할때 토큰말고 세션

0

845

2

DB 연동한 인가 부분에 대한 질문입니다!

0

264

1

Ajax방식도 똑같이 Session방식을 사용하는건가요?

0

307

1

Config 파일 생성 시 질문이 있습니다.

0

225

1

강사님 몇일동안 구글 검색만 100개 했는데도 이유를 모르겠습니다..

1

429

2

403 에러 뜹니다.

0

813

2

login_proc의 존재에 대한 간략한 설명입니다

0

275

1

top.html에 로그인 링크를 만들어서 로그인을 해봤습니다

0

278

2

안녕하세요. DB에 저장될 때 이해 안 가는 값이 있어서 질문드립니다!

0

189

1