DB 연동하기

hellas4·2019년 11월 11일
0

Spring Security

목록 보기
5/9
post-thumbnail

이번 시간에는 커스터마이징 기능을 이용하지않고 DB연동을 해보겠습니다.

table 추가

CREATE TABLE `user` (
  `ID` varchar(100) NOT NULL,
  `PASSWORD` varchar(300) NOT NULL,
  `NAME` varchar(45) NOT NULL,
  `AUTHORITY` varchar(50) NOT NULL DEFAULT 'ROLE_USER',
  `ENABLED` tinyint(1) unsigned zerofill DEFAULT '1',
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

여기서 AUTHORITY는 회원의 권한레벨,
ENABLED는 계정의 활성화 여부 컬럼입니다.


security-context.xml

초반에 작성했던 인메모리 방식 user관련 내용들은 지우고 작성한다.

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/security"
             xmlns:beans="http://www.springframework.org/schema/beans"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://www.springframework.org/schema/beans
                                 http://www.springframework.org/schema/beans/spring-beans.xsd
                                 http://www.springframework.org/schema/security
                                 http://www.springframework.org/schema/security/spring-security.xsd">

        <http auto-config="true" use-expressions="false">
            <intercept-url pattern="/**" access="ROLE_USER" />
        </http>

        <jdbc-user-service data-source-ref="dataSource" id="userService"
			users-by-username-query="SELECT ID as loginId, PASSWORD as loginPwd, ENABLED FROM user WHERE ID=?"
    		authorities-by-username-query="SELECT ID as loginID, AUTHORITY FROM user WHERE ID=?"
		/>
        
		<authentication-manager>
		    <authentication-provider user-service-ref="userService"></authentication-provider>
		</authentication-manager>

</beans:beans>

위와 같이 설정시에, 로그인시 user의 정보와 권한을 가저와서
사용자가 form에서 입력한 로그인 정보와 비교하게 된다.

Sql tool 또는 cmd를 이용해서 계정 data를 집어넣은뒤,
해당 ID, PW로 로그인하면 로그인이 될것이다.

profile
Web 개발자 입니다.

0개의 댓글