[TIP] 아파치 인증 2015-04-22

간단하게 인증이 필요한 페이지를 개발하고자 할때 아파치에서 제공하는 인증기능을 사용할 수 있다. 디자인이 필요없고 서버단에서의 세션관리 기능을 구현할 필요가 없어 편리하다.
윈도우 리눅스 모두 가능하다.

 

1. 접근경로 최상위 폴더에 .htaccess파일을 생성하고 다음과 같이 설정한다.
AuthName "{인증명 - 인증창에 보여지게 됨}"
AuthType Basic  #인증유형 기본 Basic
AuthUserFile {인증정보저장 경로}/.htpasswd
#AuthGroupFile {그룹명}    # 그룹별 인증 원할경우
# GET POST 방식의 접근만 허용하도록 설정
<Limit GET POST>
   require valid-user   # 인증된 사람만이 접속을 허용
</Limit>
2. htpasswd 명령을 실행하여 사용자를 생성합니다.
# 최초 생성
{apache 경로}/bin/htpasswd -c .htpasswd {아이디}
# 아이디 추가
{apache 경로}/bin/htpasswd .htpasswd {아이디}
3. 인증창에 설정한 아이디 비밀번호를 입력해야만 접근이 가능함

apacheAuth

4. 인증된 상태로만 유지될 경우 보안에 문제가 생기므로 다음과 같이 로그아웃을 처리해야만 함
header('HTTP/1.1 401 Unauthorized', true, 401);
echo "{화면에 표시될 로그아웃 메시지 (※ html로 구성가능)}";
exit;

 

[JAVA 개발환경설정] 6. Maven + Tomcat 배포 환경 셋팅 2015-04-07

Eclipse에 Maven 플러그인을 통해 Tomcat으로 손쉽게 배포가 가능하다. FTP를 통해 파일을 하나하나 옮기는 방법은 이제 쓰지 말도록 하자.

 

>>> 1. tomcat에 manager를 보안접속하기 위해 유저를 등록한다. (설치는 [CentOS 7] step5. 서비스 설정를 확인)

vi /usr/local/apache-tomcat-8.0.21/conf/tomcat-users.xml
# /usr/local/apache-tomcat-8.0.21/conf/tomcat-users.xml
<tomcat-users>
  <!-- 추가 -->
  <role rolename="manager-gui"/>
  <role rolename="manager-script"/>
  <role rolename="manager-jmx"/>
  <user username="{계정ID}" password="{계정PW}" roles="manager-gui,manager-script,manager-jmx"/>
  <!-- // 추가 -->
</tomcat-users>

 

>>> 2. maven – pom.xml 파일에 플러그인 (tomcat7-maven-plugin)을 추가한다.

tomcat-maven

<plugin>
   <groupId>org.apache.tomcat.maven</groupId>
   <artifactId>tomcat7-maven-plugin</artifactId>
   <version>2.2</version>
   <configuration>
      <url>http://{배포대상URL}/manager/text</url>
      <username>{계정ID}</username>
      <password>{계정PW}</password>
   </configuration>
</plugin>

 

>>> 3. Goals 를 지정하고 Run을 실행한다.

tomcat-maven2

tomcat-maven3

 

>>> 4. 필요에 따라 다음과 같이 Goals를 지정한다.

- 최초배포 : tomcat7:deploy
- 재배포 : tomcat7:redeploy
- 배포삭제 : tomcat7:undeploy

 

[문제해결] JAVA AES256 암호화 2015-03-25

1. 문제상황

JAVA로 AES256 암호화시 다음과 같은 에러가 발생하였다.

3월 25, 2015 11:22:19 오전 org.apache.catalina.core.StandardWrapperValve invoke
심각: Servlet.service() for servlet [appServlet] in context with path [/roger] threw exception [Request processing failed; nested exception is java.lang.reflect.UndeclaredThrowableException] with root cause
java.security.InvalidKeyException: Illegal key size
	at javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1024)
	at javax.crypto.Cipher.implInit(Cipher.java:790)
	at javax.crypto.Cipher.chooseProvider(Cipher.java:849)
	at javax.crypto.Cipher.init(Cipher.java:1348)
	at javax.crypto.Cipher.init(Cipher.java:1282)

2. 문제해결

검색결과 미 통상법에 의해 자국내에서만 AES256 방식이 허용되기 때문이라고 한다. 해결을 위해서는 기존 설치된 jar 파일을 교체해야 한다.
1>> 사이트 접속
http://www.oracle.com/technetwork/java/javase/downloads/index.html

illegal key size
2>> 설치파일 다운로드

illegal key size2
3>> jar파일을 아래 경로에 덮어쓰기
{Java설치경로}/jre7/lib/security