본문 바로가기

others

서블릿 보안 3

Realmdatabase로 설정해보겠습니다. 서블릿 보안관련 두번째 포스팅의 예제를 그대로 활용하겠습니다.

 

사용할 table을 다음과 같이 생성합니다.

CREATE TABLE users (

  user_name         VARCHAR(15) NOT NULL PRIMARY KEY,

  user_pass         VARCHAR(15) NOT NULL

);

 

CREATE TABLE user_roles (

  user_name         VARCHAR(15) NOT NULL,

  role_name         VARCHAR(15) NOT NULL,

  PRIMARY KEY (user_name, role_name)

);

 

생성된 tabledata를 입력합니다.

INSERT INTO users (user_name, user_pass)

VALUES ('aircook', 'aircook');

 

INSERT INTO users(user_name, role_name)

VALUES ('aircook', 'tester' );

 

COMMIT ;

 

 

Tomcatserver.xml에 있는

<Realm

           className="org.apache.catalina.realm.UserDatabaseRealm"

           resourceName="UserDatabase" />

을 아래와 같이 수정합니다. 위의 resourceName<GlobalNamingResources>에 선언되어 있습니다.

 

<Realm className="org.apache.catalina.realm.JDBCRealm"

           driverName="oracle.jdbc.driver.OracleDriver"

           connectionURL="jdbc:oracle:thin:@***.***.***.***:1521:orcl"

           connectionName="scott" connectionPassword="tiger" userTable="users"

           userNameCol="user_name" userCredCol="user_pass"

           userRoleTable="user_roles" roleNameCol="role_name" />

tomcat을 재기동한후 테스트를 하면 잘 동작합니다.

 

Tomcat 데이터소스를 이용할려면 server.xml<GlobalNamingResources>안에 다음과 같이 데이터소스를 정의하고

<Resource name="jdbc/authority" auth="Container"

           type="javax.sql.DataSource" description="database connection"

           maxActive="100" maxIdle="30" maxWait="10000"

           driverClassName="oracle.jdbc.driver.OracleDriver"

           url="jdbc:oracle:thin:@ ***. ***. ***.***:1521:orcl" username="scott"

           password="tiger" />

 

Realm정보를 다음과 같이 수정하면 됩니다.

<Realm className="org.apache.catalina.realm.DataSourceRealm"

           debug="99" dataSourceName="jdbc/authority" userTable="users"

           userNameCol="user_name" userCredCol="user_pass"

           userRoleTable="user_roles" roleNameCol="role_name" />

 

FF에서도 잘 동작합니다.

사용자 삽입 이미지
 

 

자세한 내용은 HOW-TO문서를 통해 보실 수 있습니다.

http://tomcat.apache.org/tomcat-6.0-doc/realm-howto.html

 

다음엔 시간을 많이 내어서 Spring 공부시 스쳐 지나갔던 Acegi Security Framework를 공부해봐야겠다는 생각이 많이듭니다. 언제 할라나…...;

'others' 카테고리의 다른 글

Logging in Tomcat with Log4j  (0) 2008.04.18
Log4j의 additivity 옵션  (0) 2008.01.07
서블릿 보안 2  (0) 2007.11.22
서블릿 보안 1  (0) 2007.11.22
개발 Flow Chart  (0) 2007.10.26