티스토리 뷰

728x90

1. 스프링 security는 사용자와 권한 정보에 접근할 수 있는 Tag lib를 제공한다.

  1-1 이 tag lib로 principal 객체를 접근할 수 있고 다양한 정보를 참조할 수 있다.

  1-2 사용하는 방법은

    1-2-1 spring security taglibs를 dependency에 추가한다.

 

<dependency>
	<groupId>org.springframework.security</groupId>
	<artifactId>spring-security-taglibs</artifactId>
	<version>${springsecurity.version}</version>
</dependency>

 

    1-2-2 사용할 jsp페이지에 taglib include한다.

      1-2-2-1 로그인 후에 접근했던 페이지가 열린 것이라고 가정한다.

    1-2-3 페이지에서 필요한 곳에 <security:authentication property=""> 테그를 사용한다.

      1-2-3-1 아래의 소스를 보면 username, authories라는 principal객체의 속성을 참조하여 user와 권한을 가져온다.

 

<!-- 추가한 security taglib  -->
<%@ taglib prefix="security" uri="http://www.springframework.org/security/tags" %>

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet"
  href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"
  integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh"
  crossorigin="anonymous">
<title>Spring Security Custom Login Form</title>
</head>
<body>
  <div class="container">
    <h2>Company Website</h2>
    <hr>
    <p>You are now logged in</p>
    <p>
      User :: <security:authentication property="principal.username"/>
    </p>
    <p>
      Roles(s) :: <security:authentication property="principal.authorities"/>
    </p>
    <form:form action="${ pageContext.request.contextPath }/logout" method="POST">
      <input type="submit" class="btn btn-primary" value="Logout"/>
    </form:form>
  </div>
</body>
</html>

 

    1-2-4 결과 페이지

728x90
댓글