
아...........................................
그만 좀 외우게 시켜라.........
머리 터질거 같음.....
로그인을 했다~~ 그러면
securityconfig dp configure 함수 실행

그다음

가 실행
그다음 저 auth.userDetailsService(memberUserDetailsService()) 저 함수가 실행
그럼 저건 뭐지 싶어어 봤더만 바로 위에 있는거 함수 호출이네
객체뱉애서 컨테이너에 저장하란거네
그럼 저 객체는 뭐지..?
이미 만들어 놓은거구나..

UserDetailsService 를 구현한 클래스
여기서 membermapper.에 데이터베이스 갓다가 맴버객체로 받고
그다음
member 객채가 널이 아니면
리턴으로 new MemberUser(mvo) 로 맴버유저 객체 반환
그럼 저건 또 뭐냐..

아.. UserDetails를 구현한게 User 클래스 이 User클래스를 상속받아서 오버라이딩해서 쓰는중.
하아...... 진짜 졸라 어렵게 만들어 놨네 왜이렇게 만들어 놓은거야
스프링 만든사람은 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
그럼 수퍼 부모생성자로 User클래스에 정보를 넣어서 객채를 반환함
저거 this.member=mvo 는 저기서 쓸려고 저렇게 넣어둔것뿐임

그래서 MemberUser로 받아서 다시 MemberUserDetailsService로 돌아옴
자세히 풀면

이 리턴값을

받아서 시큐리티 컨텍스트에 넣는다고 한다

시큐리티 컨텍스트홀더라는 객채에 보면
시큐리티컨텍스트 여기에 객체바인딩이 된다고 한다 아......................................... 진짜 ..................
그만해....................
그다음 .jsp에서 꺼내는 방법

저렇게 쓰면 된단다

해보자
아 그리고 하기전에

로그인 로직 전부다 없애버리고 ㄱㄱ

일부로 틀리게 입력해봤다
error쿼리스트링 을 가져오자

<!-- 실패 매세지를 띄우는 부분 -->
<div id="myMessage" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div id="messageType" class="modal-content panel-info">
<div class="modal-header panel-heading">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">${msgType}</h4>
</div>
<div class="modal-body">
<p >${msg}</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
아 씨............ 로그인 했는데 안된다 왜 안돼지 하아...... 진자 컴터 부셔버리고 싶다
아 해냈다.... 고쳤다 ..
알고보니

name에 password 속성값을 password로 바꿔야 동작이 된단다 ...
아............. 미나ㅓㄹ미;ㄴ어리;럼니ㅏ;러ㅣㅏ;ㄴㅇ러미ㅏㅓ리ㅏ;너리ㅏ;머리;ㄴ어린어니ㅏ;ㅁ러닝ㅁ러
sdajflksdajflaslk;djfsljslkfjslkfjslk;dafjlkjflkjfaslk;fjlksdafjlkfjsdlkafjdlkfjdsl;fjaslkfjlk;dfjslk;fjkl;fjaslfjaslkfjdlkfjdlkaf
그다음 header.jsp수정하러 ㄱㄱ


<%@taglib prefix="security" uri="http://www.springframework.org/security/tags" %>
</c:set var="mvo" value="${spring_security_context.authentication}">
</c:set var="auth" value="${spring_security_context.authentication.authorities}">
추가
그밑에 mvo 주석처리하고
세큐리티 태그 추가
<security:authorize access="isAnonymous()">
</security:authorize>
<security:authorize access="isAuthenticated()">
</security:authorize>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="security" uri="http://www.springframework.org/security/tags" %>
<c:set var="contextPath" value="${pageContext.request.contextPath}"/>
<c:set var="mvo" value="${SPRING_SECURITY_CONTEXT.authentication.principal}"/>
<c:set var="auth" value="${SPRING_SECURITY_CONTEXT.authentication.authorities}"/>
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="${contextPath}">SpringMVC09</a>
</div>
<div class="collapse navbar-collapse" id="myNavbar">
<ul class="nav navbar-nav">
<li class="active"><a href="${contextPath}">Home</a></li>
<li><a href="boardMain.do">게시판</a></li>
<li><a href="#">Page 2</a></li>
</ul>
<security:authorize access="isAnonymous()">
<ul class="nav navbar-nav navbar-right">
<li><a href="${contextPath}/memberLoginForm.do"><span class="glyphicon glyphicon-log-in"></span> 로그인</a></li>
<li><a href="${contextPath}/memberJoin.do"><span class="glyphicon glyphicon-user"></span> 회원가입</a></li>
</ul>
</security:authorize>
<security:authorize access="isAuthenticated()">
<ul class="nav navbar-nav navbar-right">
<li><a href="${contextPath}/memUpdateForm.do"><span class="glyphicon glyphicon glyphicon-wrench"></span> 회원정보수정</a></li>
<li><a href="${contextPath}/memImageForm.do"><span class="glyphicon glyphicon glyphicon-picture"></span> 사진등록</a></li>
<li><a href="javascript:logout()"><span class="glyphicon glyphicon-log-out"></span> 로그아웃</a></li>
<c:if test="${empty mvo.member.memProfile}">
<li><img class="img-circle" src="${contextPath}/resources/images/person.png" style="width: 50px; height: 50px"/>
</c:if>
<c:if test="${!empty mvo.member.memProfile}">
<li><img class="img-circle" src="${contextPath}/resources/upload/${mvo.member.memProfile}" style="width: 50px; height: 50px"/>
</c:if>
${mvo.member.memName}님
(
<security:authorize access="hasRole('ROLE_USER')">
U,
</security:authorize>
<security:authorize access="hasRole('ROLE_MANAGER')">
M,
</security:authorize>
<security:authorize access="hasRole('ROLE_ADMIN')">
A
</security:authorize>
)
</li>
</ul>
</security:authorize>
</div>
</div>
</nav>

아 됬다.... 아 힘들어
'spring framework 인프런강의' 카테고리의 다른 글
| SpringMVC09 80.회원인증 적용 게시판 수정하기 (0) | 2024.12.16 |
|---|---|
| SpringMVC09 회원로그아웃 처리하기 (0) | 2024.12.16 |
| SpringMVC09 사용자 인증정보를 저장하는 User클래스 만들기 (1) | 2024.12.15 |
| SpringMVC09 UserDetailsService 구현하기 (0) | 2024.12.15 |
| SpringMVC09 스프1탄_최종프로젝트 만들기(SpringMVC09) ,HttpSecurity를 이용한 권한 설정하기 (0) | 2024.12.14 |