Ynns

spring security 프로젝트(4) 본문

JAVA/Spring

spring security 프로젝트(4)

yunassnn 2019. 11. 26. 15:05

//게시판 security login//

security-context.xml 

<!-- 비밀번호 암호화 빈 -->
<bean id="bcryptPasswordEncoder" class ="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder"></bean>

<!-- 인증된 암호화를 담은 객체  -->
<bean id="userDetail" class="com.spring.security.CustomUserDetailsService"></bean>

<!-- 로그인 성공 후 Handler -->
<bean id="customLoginSuccess" class="com.spring.security.CustomLoginSuccessHandler"></bean>

<!-- 게시글 목록 보기는 보안 해제, 게시글 보기는 보안 설정 -->
<security:http pattern="/board/getList" security="none" />

<security:http>
  <security:intercept-url pattern="/board/*" access="hasAnyRole('ROLE_USER','ROLE_MEMBER','ROLE_ADMIN')"/> <!-- board 아래 주소는 모두 권한이 있는지 확인한다 -->
  <security:form-login login-page="/member/signin" authentication-success-handler-ref="customLoginSuccess"/><!-- 제한조건에 맞지 않는 요청을 하면 로그인 페이지를 찾음 -->
</security:http>

<security:authentication-manager>
	<security:authentication-provider user-service-ref="userDetail">
		 <!-- 사용자가 비밀번호 입력 시 인코딩을 한 뒤 암호화 된 비밀번호를 받음 -->
		<security:password-encoder ref="bcryptPasswordEncoder"/>
	</security:authentication-provider>
</security:authentication-manager>

signin.jsp / signin.css 추가

 

컨트롤러 추가

CommonController 추가 

	@GetMapping("/member/signin")
	public void loginForm() {
		log.info("로그인 페이지 요청");
	}

http://localhost:8083/member/signin
admin 으로 로그인 했을 때 페이지
user로 로그인 시 게시판이 보임

@PreAuthorize

@PostAutorize

@Secured

==>servlet-context.xml에 기록, 활성화

<!-- @PreAuthorize @PostAutorize @Secured -->
<security:global-method-security pre-post-annotations="enabled" secured-annotations="enabled" />
	
Comments