본문 바로가기
Spring/Spring Security

[Spring Security] 5. Mybatis를 이용하여 DB연동하기

지금까지 우리는 xml에 계정과 비밀번호를 직접 등록하여 사용했다. 하지만 우리가 상상하는 로그인은 이런게 아니라 DB속에 계정정보를 저장하여 유동적으로 사용하는 것을 꿈꾸었을 것이다. 이 포스팅에서는 드디어 스프링시큐리티와 DB를 연동하여 쿼리문을 통하여 계정정보를 조회하는 방법을 알아보도록 하겠다.

 

 

 

 

 

Mybatis를 이용한 DB연동

<beans:bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  <beans:property name="driverClassName" value="com.mysql.jdbc.Driver"/>
  <beans:property name="url" value="jdbc:mysql://127.0.0.1:3306/test"/>
  <beans:property name="username" value="root"/>
  <beans:property name="password" value="1234"/>
</beans:bean>

여기서는 마이바티스를 이용한 DB연동은 기본적으로 할줄 안다고 가정을 하고 대하여 자세히 다루지 않겠다.
디비를 연동하게되면 dataSource라는 이름으로 빈객체를 생성하는데 이 bean객체를 이용하여 Spring Security와 연동을 하게 된다.

 

 

 

 

 

<?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="true">
  <intercept-url pattern="/user/**" access="hasAnyRole('ROLE_USER','ROLE_GUEST')"/>
  <intercept-url pattern="/admin/**" access="hasRole('ROLE_ADMIN')"/>
<intercept-url pattern="/**" access="permitAll"/>

<form-login
username-parameter="id"
password-parameter="pw"
login-processing-url="/login"
login-page="/loginPage"
default-target-url="/all" />

<logout
logout-url="/logout"
logout-success-url="/all"
invalidate-session="true"
delete-cookies=""/>
</http>

<authentication-manager>

<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>

<!-- 
<authentication-provider>
<user-service>
<user name="admin" password="{noop}admin" authorities="ROLE_ADMIN"/>
<user name="user" password="{noop}user" authorities="ROLE_USER"/>
</user-service>
</authentication-provider>
-->

</authentication-manager>
</beans:beans>

 

 

 

 

 

제목

내용작성

 

 

 

 

 

제목

내용작성

 

 

 

 

 

제목

내용작성

댓글