WAS2011. 5. 17. 18:00

jboss 4.2.2.GA + mod_jk + apache 간단 연동 설정 입니다.

1. mod_jk 다운로드(version 1.2.X)
http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.31/i386/

2. mod_jk 파일 퍼미션 설정 및 이름 변경(기존 이름 사용 권장)
 - 저장 경로 변경 및 이름 변경
    > mv mod_jk-1.2.31-httpd-2.2.x.so /etc/httpd/modules/mod_jk.so
 -  퍼미션 설정
    > chmod +x /etc/httpd/modules/mod_jk.so

 * httpd 구동시 mod_jk.so에 대한 퍼미션 거부가 생길 경우 아래와 같이 처리
   > chcon -t textrel_shlib_t /usr/lib/httpd/module/mod_jk.so

3. 아파치 설정 - /etc/httpd/conf/httpd.conf
 - 200 Line 정도
    LoadModule jk_module modules/mod_jk.so
 
 - 874 Line 정도
    <IfModule jk_module>
             JkWorkersFile /etc/httpd/conf/worker.properties
             JkShmFile /etc/httpd/logs/mod_jk.shm
             JkLogFile /etc/httpd/logs/mod_jk.log
             JkLogLevel info
             JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
    </IfModule>
     
    JkMount /*.jsp ajp13
    <Directory />
         Options FollowSymLinks
         AllowOverride None
    </Directory>

 - 제일 하단
   <VirtualHost *:80>
            # 호스트 명
            ServerName localhost.localdomain
            # DocumentRoot
            DocumentRoot /usr/jboss-4.2.2.GA/deploy/runtime/EarContent/webapp/web.war
            JkMount /*.jsp ajp13
            JkMount /*.cmd ajp13
   </VirtualHost>

4. mod_jk 세부 설정 - /etc/httpd/conf/worker.properties
worker.list=ajp13
worker.ajp13.type=ajp13
worker.ajp13.host=127.0.0.1
# /usr/jboss-4.2.2.GA/server/midas/deploy/jboss-web.deployer/server.xml 파일의 AJP 포트 입력
worker.ajp13.port=8109
worker.ajp13.lbfactor=1
#worker.ajp13.socket_timeout=30
worker.ajp13.connection_pool_timeout=600
worker.ajp13.socket_keepalive=1

 

5. JBOSS의 톰켓에 Host 설정 -  /usr/jboss-4.2.2.GA/server/midas/deploy/jboss-web.deployer/server.xml

<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8109" address="${jboss.bind.address}" protocol="AJP/1.3"
         emptySessionPath="true" enableLookups="false" redirectPort="8443" />

        <Host name="127.0.0.1"
                appBase="/usr/jboss-4.2.2.GA/deploy/runtime/EarContent/webapp/web.war"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
                <Context path="" docBase="" debug="1"/>
        </Host>

6. jboss 구동 후 httpd 서버 restart 그리고 테스트!

** Bad Gateway 나 proxy 관련 오류 발생시
 /etc/selinux/config 파일의 SELINUX=disabled 로 변경!


 

Posted by Tiwaz
JAVA2011. 5. 13. 14:27


package string;

import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class PatternTest {
 public static void main(String[] args) {
  
  System.out.println("생성자로 초기화 : " + new Integer("2"));
  System.out.println("Object를 기본 int type으로 변환 : " + Integer.parseInt("20"));
  
  //아래는 java.lang.NumberFormatException 발생
  //System.out.println(new Integer("a1"));
  
  // 예문
  String str = "학0교abc 1종2e이 땡f34땡g땡5!6! hi7어서 8모이9자!@ ";
  String result = "";
  
  // ASCII 값 47~58은 숫자 0~10
  int i = 0;
  while(i<str.length()) {
   if(str.charAt(i)>=47 &&  str.charAt(i)<=58) {
    result += "\t" + str.charAt(i);
   }
   i++;
  }
  System.out.println("ASCII 로 찾은 숫자 : " + result);
  
  
  // reference으로 확인
  int j = 0;
  result = "";
  while(j<str.length()) {
   if(Character.isDigit(str.charAt(j))) {
    result += "\t" + str.charAt(j);
   }
   j++;
  }
  System.out.println("Character의 isDigit(ch)을 이용한 찾기 : " + result);
  
  
  // Pattern을 이용한 숫자 찾기
  result = "";
  String patternStr = "[\\d]";
  Pattern pattern = Pattern.compile(patternStr);
  Matcher matcher = pattern.matcher(str);
  while(matcher.find()) {
   result += "\t" + matcher.group(0);
  }
  System.out.println("Pattern 을 이용한 숫자 찾기 : " + result);
  
  // Pattern을 이용한 a~z 찾기
  result = "";
  patternStr = "[a-z]";
  pattern = Pattern.compile(patternStr);
  matcher = pattern.matcher(str);
  while(matcher.find()) {
   result += "\t" + matcher.group(0);
  }
  System.out.println("Pattern 을 이용한 a~z 찾기 : " + result);
  
 }
}

'JAVA' 카테고리의 다른 글

javafx 예제 모음  (0) 2016.01.14
자바 멀티쓰레딩 관련 예제 링크  (0) 2016.01.14
Static Initialization in Java(tm)  (0) 2010.05.20
Singleton 패턴  (0) 2010.05.20
java.io.File을 이용한 디렉토리와 파일 검색(call back)  (0) 2010.05.07
Posted by Tiwaz
Database/SQL Server2011. 5. 2. 15:06

-- 마스터키 만들기
-- http://msdn2.microsoft.com/ko-kr/library/ms174382.aspx

-- 인증서 만들기
-- http://msdn2.microsoft.com/ko-kr/library/ms187798.aspx

-- 대칭키 생성
-- http://msdn2.microsoft.com/ko-kr/library/ms188357.aspx

-- 데이터를 암호화 해서 넣을때
-- http://msdn2.microsoft.com/ko-kr/library/ms174361.aspx

-- 데이터를 복호화 해서 가지고 올때
-- http://msdn2.microsoft.com/ko-kr/library/ms181860.aspx


예제))

-- 마스터 Key 생성
SELECT * FROM sys.symmetric_keys

IF NOT EXISTS (
SELECT * FROM sys.symmetric_keys WHERE name = N'##MS_DatabaseMasterKey##'
)
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '!votmdnjem(22qhekzmrptjfwjd)'   -- 패스워드(22보다 크게 설정)
GO

-- 마스터Key을 삭제 한다.
DROP MASTER KEY
--1. Master Key는 각각의 데이터 베이스에 대하여 분리되어 생성된다.
-- 데이터베이스 상에 하나의 마스터 KEY을 생성할 수 있다.
-- 하나의 데이터베이스 인스턴스에 두개의 마스터 key는 존재할 수 없다.


-- 인증서 생성
SELECT * FROM sys.certificates

IF NOT EXISTS (
SELECT * FROM sys.certificates WHERE name = N'TiwazPasswordFieldCertificate'
)
CREATE CERTIFICATE TiwazPasswordFieldCertificate WITH SUBJECT = 'Password Fields';
GO


DROP CERTIFICATE TiwazPasswordFieldCertificate
go

-- Creating a Symmetric Key
SELECT * FROM sys.symmetric_keys 

/*************** CREATE SYMMETRIC KEY *********************************/
CREATE SYMMETRIC KEY PasswordFieldSymmetricKey   -- Key 명칭
WITH ALGORITHM = AES_256
ENCRYPTION BY CERTIFICATE TiwazPasswordFieldCertificate;


CREATE SYMMETRIC KEY TiwazPasswordFieldSymmetricKey   -- Key 명칭
WITH ALGORITHM = AES_256
ENCRYPTION BY CERTIFICATE TiwazPasswordFieldCertificate;

-- Algorithm
-- DES, TRIPLE_DES, RC2, RC4, RC4_128, DESX, AES_128, AES_192 and AES_256
-- Microsoft Windows 2000, Window XP에서는 AES_128, AES_192 and AES_256의 알고리즘은 사용할 수 없다.
-- Win2K인 경우 TRIPLE_DES Algorithm을 사용한다.


OPEN SYMMETRIC KEY PasswordFieldSymmetricKey                -- 대칭 Key
DECRYPTION BY CERTIFICATE TiwazPasswordFieldCertificate;    -- 인증 Key 명칭

-- 암호화 및 복호화시 주의할 점은 원래의 데이터 타입으로 복호화 되어야 한다는 것이다.
-- Varchar 은
SELECT CONVERT(varchar, DecryptByKey(EncryptByKey(Key_GUID('PasswordFieldSymmetricKey'), '테스터')))
SELECT CONVERT(nvarchar, DecryptByKey(EncryptByKey(Key_GUID('PasswordFieldSymmetricKey'), N'테스터')))

-- Encrypt 'Varchar' string and then decrypt encrypted data
SELECT
  CONVERT(varchar, DecryptByKey(EncryptByKey(Key_GUID('PasswordFieldSymmetricKey'), '테스터'))),
  CONVERT(nvarchar, DecryptByKey(EncryptByKey(Key_GUID('PasswordFieldSymmetricKey'), '테스터'))),
  CONVERT(varchar, DecryptByKey(EncryptByKey(Key_GUID('PasswordFieldSymmetricKey'), N'테스터1'))),
  CONVERT(nvarchar, DecryptByKey(EncryptByKey(Key_GUID('PasswordFieldSymmetricKey'), N'테스터1')))

 

SELECT login_password
     , EncryptByKey(Key_GUID('PasswordFieldSymmetricKey'),login_password ) ENCRYPT_LOGIN_PASSWORD
     , DecryptByKey(EncryptByKey(Key_GUID('PasswordFieldSymmetricKey'),login_password ))  AS NON_CONVERT_LOGIN_PASSWORD
     , CONVERT(varchar,DecryptByKey(EncryptByKey(Key_GUID('PasswordFieldSymmetricKey'),login_password ))) AS CONVERT_LOGIN_PASSWORD
  from skf_employee

 

-- 파라메터로 암호화 하기
DECLARE @sample_data nvarchar(MAX)
SET @sample_data = N'위의 내용은 SQL SERVER 2005 및 SQL SERVER 2008의 암호화를 설명한 것이다.'

SELECT
CONVERT(nvarchar(MAX), DecryptByKey(EncryptByKey(Key_GUID('PasswordFieldSymmetricKey'), @sample_data)))

Posted by Tiwaz
Database/SQL Server2011. 5. 2. 14:23

간단 사용 방법은 다음과 같다.
** 세부 자세한 내용은 MSDN 링크를 참조


-- 데이터베이스 mdf 파일 및 *_log.ldf 파일 정보 확인
sp_helpdb midas

--
--BACKUP LOG midas with NO_LOG


-- 트렌젝션 로그 축소
http://technet.microsoft.com/ko-kr/library/ms178037.aspx
DBCC SHRINKFILE([데이터베이스]_log, truncateonly)
또는
DBCC SHRINKFILE([데이터베이스]_log, 줄이고자 하는 파일 사이즈, truncateonly)

-- 데이터베이스 축소
http://technet.microsoft.com/ko-kr/library/ms189080.aspx
DBCC SHRINKDATABASE([데이터베이스])

Posted by Tiwaz
Database/SQL Server2011. 4. 20. 17:41
MSSQL 2005 이상 버젼의 경우 별도의 암호화 모듈을 제공합니다.
2000이하 버젼의 경우 별도 암호화 모듈은 없으며 암호화 함수를 제공(2005 이상도 포함) 합니다.

암호화 함수 : PWDENCRYPT([데이터]) / 임의의 16진수 값을 반환
복호화 함수 : PWDCOMPARE([원본 데이터], [비교 할 데이터]) / 원본 데이터와 비교할 데이터가 같을 경우 1 틀리면 0을 반환

예제)
SQL> SELECT '라면',PWDENCRYPT('라면'), PWDCOMPARE('라면', PWDENCRYPT('라면')), PWDCOMPARE('라면', PWDENCRYPT('국수'))
결과 : [라면]     [0x010064BE8FA85E45C5F3ABDDC43A98750D1A9550D13F99A268C1]     [1]     [0]

Posted by Tiwaz