이번 시간에는 커스터마이징 기능을 이용하지않고 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로 로그인하면 로그인이 될것이다.