티스토리 뷰
국내에서는 웹 애플리케이션 개발할 때 Spring 을 많이 사용하고 그러다 보니 보안 처리는 주로 Spring Security를 많이 사용한다. 하지만 Spring Security를 사용하지 않고 보안 영역의 프로그램을 직접 짜지 않는다면 Apache Shrio는 좋은 대안이 될 수 있다. Apache Shiro는 java로 구성된 Security Framework 이다. Apache Zeppelin등에서 사용되고 있고 2010년 이전에 나와서 최근에는 2020-02-23 1.5.1 release 될만큼 잘 관리되고 있다. 오늘은 Apache Shiro 구체적인 사용법은 작성은 아니고 혹시라도 누군가 Apache Shiro를 Postgresql DB를 연동하고 싶을때 참고할 수 있는 Configuration 정보를 남긴다. (필자는 인터넷에 정보가 없어서 약간 고생했다.)
shiro.ini
DB연결을 통한 로그인 처리를 위한 설정이다.
credentialsMatcher = org.apache.shiro.authc.credential.HashedCredentialsMatcher
credentialsMatcher.hashAlgorithmName = SHA-256
credentialsMatcher.hashIterations = 2002
ds = org.postgresql.ds.PGPoolingDataSource
ds.serverName = 127.0.0.1
ds.user = test_user
ds.password = 1234
ds.databaseName = test_db
jdbcRealm = org.apache.shiro.realm.jdbc.JdbcRealm
jdbcRealm.dataSource = $ds
jdbcRealm.permissionsLookupEnabled = false
jdbcRealm.authenticationQuery = SELECT user_pass FROM users WHERE user_name = ?
jdbcRealm.userRolesQuery = SELECT role_name FROM user_roles WHERE user_name = ?
jdbcRealm.credentialsMatcher = $credentialsMatcher
authc = org.apache.shiro.web.filter.authc.PassThruAuthenticationFilter
Password Generator
패스워드는 SHA-256 Hexing 을 이용해서 인코딩되서 저장해야 한다. shiro에서 사용할 암호화 문자열을 만드는 샘플 자바이다.
package org.apache.zeppelin.utils;
import org.apache.shiro.crypto.hash.DefaultHashService;
import org.apache.shiro.crypto.hash.HashRequest;
public class GeneratePasswordUtils {
public static void main(String[] args) {
final DefaultHashService hash = new DefaultHashService();
final String pswEnc = hash.computeHash(new HashRequest.Builder()
.setAlgorithmName("SHA-256")
.setIterations(2002)
.setSource("1234")
.build())
.toHex();
System.out.println(pswEnc);
}
}
'Web Development' 카테고리의 다른 글
Build Docker Image with Maven (java) (0) | 2020.06.25 |
---|---|
Jenkins 계정 권한 관리 (Role-based Authorization Strategy Plugin) (0) | 2020.03.26 |
OSGI for Java Bundle Programing (0) | 2020.03.16 |
Runnable Jar (Maven Shade) (0) | 2020.03.12 |
Multiple Java Version (Mac) (0) | 2020.02.24 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크