쿵따리쿵쿵따
270
2017-10-31 19:00:36 작성 2017-10-31 19:00:52 수정됨
3
2408

시큐리티 principal 에러


안녕하세요 너무답답해서 질문남깁니다

로그인후 탑메뉴에 ~님 환영합니다를 만들어줄려고

  <sec:authorize access="isAuthenticated()"> 

                  <sec:authentication property="principal.username"/>

       </sec:authorize>

이문자을 넣어줬는데 이런 에러가 나왔습니다.

 javax.servlet.ServletException: javax.servlet.jsp.JspException: org.springframework.beans.NotReadablePropertyException: Invalid property 'principal.username' of bean class [org.springframework.security.authentication.UsernamePasswordAuthenticationToken]: Bean property 'principal.username' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter?

getter setter가 없다고하는데



UserDetails 객채에 getter setter가 있습니다. 분명있는데 자꾸없다고 하니 정말 미칠노릇입니다. 도대체 어디가 에런지 전혀감이 안와가지고 도움청합니다..

이건 시큐리티 설정파일입니다.



0
  • 답변 3

  • 스타
    3k
    2017-11-01 09:19:28

    이마도 로그인 처리 할 때 userdetails를 어떻게 넘겼냐에 따라 principal일수도, 이하 객체일수도 닜을거에요.

    jsp 파일에서 ${principal}로 찍어 출력해 보면 객체 구조에 이해에 도움이 됩니다.

  • mixMaven
    1k
    2017-11-01 09:56:04

    property 말고 var 값에 username을 적어야 되는거 아닐까요..? ㅎㅎ

    https://stackoverflow.com/a/28571694/5459191

    스택오버플로 공유드립니다~

  • 쿵따리쿵쿵따
    270
    2017-11-01 22:43:03

    답변감사합니다!! ${principal}을 찍어 출력해보니 아예 객체가 안넘어갔더라구요. 이런에러일줄이야 ㅠ


    그리고 property말고 var값에 username을 적어주니 바로 해결됐습니다. 정말감사합니다!!

  • 로그인을 하시면 답변을 등록할 수 있습니다.