출처 : http://opennaru.tistory.com/109

JBoss EAP6 에서 server.log에서 애플리케이션에서 출력하는 로그 메세지가 보이지 않습니다. 톰캣에서는 메세지가 출력되는데 JBoss EAP6에서만 나오지 않습니다.


1. 동작환경

본 내용은 다음과 같은 환경을 전제로 작성되었습니다.

  • JBoss EAP6.X

2. 문제 

애플리케이션이나 모듈에 포함되어 있는 Log4J의 설정이 반영되지 않아 server.log 에 로그가 보이지 않는다.

3. 원인
JBoss EAP6에서는 기본적으로 자체의 로그 모듈을 사용하게 됩니다. 이 경우 배포 대상 애플리케이션에 포함된 Log4J 설정이 동작하지 않습니다.

4. 해결책 

이 문제를 해결하는 방법은 두 가지로 첫 번째는 JBoss 인스턴스 옵션으로 "org.jboss.as.logging.per-deployment=false"를 두는 방법이며, 두 번째는
"jboss-deployment-structure.xml" 를 이용하여 해당 로그 라이브러리를 Exclusion으로 선언하는 방법입니다.


4.1  org.jboss.as.logging.per-deployment=false 를 이용하는 방법

JBoss 인스턴스 시작 옵션에 시스템 프로퍼티로 시스템 프롭퍼티에 org.jboss.as.logging.per-deployment=false 를 설정합니다.
이 방법은 JBoss 에서 각 배포 대상에 대하여 JBoss 자체의 로거를 사용하지 않게 하는 것입니다.  

  • standalone 에서는 
-Dorg.jboss.as.logging.per-deployment=false


  • 도메인 모드에서는
 <server name="PMS" group="pms_server_group" auto-start="false">
            <system-properties>
                   <property name="org.jboss.as.logging.per-deployment" value="false"/>
            </system-properties>
</server>



4.2 jboss-deployment-structure.xml 에서 exclusion으로 선언하는 방법 

  • EAR의 경우 XX.ear/META-INF/jboss-deployment-structure.xml
  • WAR의 경우 XX.war/WEB-INF/jboss-deployment-structure.xml

<jboss-deployment-structure>
  <deployment>
    <exclusions>
        <module name="org.apache.log4j" />
        <module name="org.apache.commons.logging" />
    </exclusions>
  </deployment>
</jboss-deployment-structure>


- logback 설정 시 샘플

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<exclusions>
<!--  
                        스프링 프레임워크 사용 시 org.apache.commons.logging 은 필수로 해줘야 함
-->
                        <module name="org.apache.commons.logging" />
<module name="org.slf4j" />
<module name="org.slf4j.ext" />
<module name="org.slf4j.impl" />
<module name="org.slf4j.jcl-over-slf4j" />
</exclusions>
</deployment>
</jboss-deployment-structure>


5. References


- jboss 설정에 console 부분은 주석처리 한다.

 <subsystem xmlns="urn:jboss:domain:logging:1.5">
            <!--
            <console-handler name="CONSOLE">
                <level name="INFO"/>
                <formatter>
                    <named-formatter name="COLOR-PATTERN"/>
                </formatter>
            </console-handler>
            -->

            <periodic-rotating-file-handler name="FILE" autoflush="true">
                <formatter>
                    <named-formatter name="PATTERN"/>
                </formatter>
                <file relative-to="jboss.server.log.dir" path="server/server.log"/>
                <suffix value=".yyyy-MM-dd"/>
                <append value="true"/>
            </periodic-rotating-file-handler>
            <logger category="com.arjuna">
                <level name="WARN"/>
            </logger>
            <logger category="org.apache.tomcat.util.modeler">
                <level name="WARN"/>
            </logger>
            <logger category="org.jboss.as.config">
                <level name="DEBUG"/>
            </logger>
            <logger category="sun.rmi">
                <level name="WARN"/>
            </logger>
            <logger category="jacorb">
                <level name="WARN"/>
            </logger>
            <logger category="jacorb.config">
                <level name="ERROR"/>
            </logger>
            <logger category="org.apache.catalina.core.AprLifecycleListener">
                <level name="DEBUG"/>
            </logger>
            <logger category="org.jboss.as.controller.management-deprecated">
                <level name="OFF"/>
            </logger>
            <logger category="org.jboss.as.clustering.web.infinispan">
                <level name="TRACE"/>
            </logger>
            <root-logger>
                <level name="INFO"/>
                <handlers>
                    <!--
                    <handler name="CONSOLE"/>
                    -->
                    <handler name="FILE"/>
                </handlers>
            </root-logger>
            <formatter name="PATTERN">
                <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
            </formatter>
            <formatter name="COLOR-PATTERN">
                <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
            </formatter>
</subsystem>

 

참고 : http://linuxism.tistory.com/558

/favicon.ico HTTP/1.1" 404 에러 없애는 방법

apache 를 설치한뒤에 access.log 와 error.log 에 귀찮게도 자주 나오는 favicon.ico 에러를 안나오게 하는 방법에 대해 정리하겠습니다. 별로 안어려우니 따라해보시면 됩니다.


(1)  error.log 상에 favicon.ico 로그 안찍히게 하는 방법.

error.log 에러로그

=> [Wed Aug 24 11:10:52 2011] [error] [client 10.225.23.118] File does not exist: /jboss/jboss-as-web-7.0.0.Final/standalone/deployments/test.war/favicon.ico


* 설정파일 : httpd.conf

* 설정방법은 아래와 같다. (error.log 아래에 붙이면 된다.)

Redirect 404 /favicon.ico

<Location /favicon.ico>

   ErrorDocument 404 "No favicon"

</Location>


(2) access.log 상에 favicon.ico 로그 안찍히게 하는 방법

* access.log 에러로그  => /favicon.ico HTTP/1.1" 404


설정파일 : httpd.conf

* 설정부분은 아래와 같으며, access.log 설정부분에 충돌안나게 변경하면 된다.

SetEnvIf Request_URI "favicon.ico" do_not_log

CustomLog logs/access.log common env=!do_not_log


간단한거니 불필요한 에러는 안나게 해버리세요.. 열공하세용.


출처 - http://kletgdgo.blog.me/90121425629


===================================================================================


favicon.ico 만들기

[출처] favicon.ico 만들기|작성자 엔젤반


웹 사이트 루트 디렉터리에 favicon.ico라는 이름의 아이콘 파일을 올려두면, 사용자가 즐겨찾기(Favorites)에 추가할 때 아이콘이 자동으로 그 사이트의 로고로 바뀌도록 할 수 있다.

 

다시 이야기하여 사용자가 어떤 페이지를 즐겨찾기에 추가하면 아이콘을 자동으로 다운로드하여 바꾸어 주는 기능이다.

 

웹 사이트의 루트 디렉터리에 favicon.ico라는 이름의 아이콘 파일을 올려두기만 하면 됨.

단, 이 기능은 Internet Explorer 5 이상에서 지원한다.

 

favicon.ico 파일을 직접 지정하기

개인 홈페이지처럼 루트 디렉터리에 직접 favicon.ico 파일을 올려두기 곤란하거나 다른 이름 또는 다른 위치의 아이콘 파일을 지정하고 싶다면 다음과 같이 할 수 있다.

<LINK REL="SHORTCUT ICON" href="/path/logo.ico">

위와 같은 형식으로 LINK element를 사용할 수 있으며, 웹 페이지 Header(<head>...</head>)에 가볍게 적어줄 수 있다.

<LINK REL="SHORTCUT ICON" href="./galaxy.ico"> 
<LINK REL="SHORTCUT ICON" href="http://www.i-biznet.com/favicon.ico">

아이콘 파일은 비트맵 이미지이면서 고유의 파일 포맷을 가지고 있다. 16x16, 32x32 픽셀 등으로 크기를 선택할 수 있으며, 256 색상 이상을 사용할 수 있지만, 16 색상만 사용하는 것이 기본이다. favicon.ico 파일은 가능한 16x16 픽셀, 16 색상의 아이콘 파일로 만드는 것이 좋다.

문제는 아이콘 파일을 직접 만드는 것인데, 아이콘 만들기 도구의 선택부터 생각만큼 쉽지 않다. Favicon.com에서는 Java로 구현한 아이콘 만들기 프로그램을 온라인에서 직접 실행할 수 있도록 하여 이러한 고민을 어느 정도 해결해주고 있다.

Favicon Icon Generator는 16x16 픽셀의 아이콘을 16 색상으로 제작할 수 있는 간단한 도구이다. 색상 선택, 칠하기/지우기, Zoom In/Out 등 꼭 필요한 기능 정도만 제공하고 있지만, 아이콘 파일을 만드는데 크게 부족함이 없다.


http://favicon.com/ 페이지에 들어가면 맨 윗줄에 Favicon Maker가 있다.

링크를 누르면

http://favigen.com/ 페이지로 이동하는데

이곳에서

1) Upload Source Image: 원본소스 이미지 파일을 올리고
2) Choose Favicon Size: 파비콘 사이즈를 선택하고
3) Create Favicon 버튼을 누르면 파비콘이 생성된다.
파일이 생성된 후에 Download your favicon 버튼을 누르면 파일을 다운받을 수 있다.
이것을 홈페이지 index.html이 있는 위치에 넣으면 된다.


Http Response 에 아래 값을 넣어주면 됨

Key : X-Frame-Options
Value : SAMEORIGIN

X-Frame-Options 옵션 값

 DENY

 해당 페이지는 frame을 표시할 수 없다. 

 SAMEORIGIN 

 해당 페이지와 동일한 orgin에 해당하는 frame만 표시할 수 있다.

 ALLOW-FROM uri 

 해당 페이지는 지정된 orgin에 해당하는 frame만 표시할 수 있다.


X-Frame-Options 는 그 명칭에서도 알 수 있듯이 확장 해더이기때문에 모든 브라우저가 해당 옵션에 대해 동작하는것은 아니다.
크롬 4.1 , IE 8 , 오페라 10.5 , 사파리 4.0 , 파이어폭스 3.6.9 이상에서는 DENY , SAMEORIGIN 이 적용되며, ALLOW-FROM 은 각 브라우저 마다 지원 현황이 다르다.


* Apache 설정
환경파일 중 해당태그 (<Directory>, <Location>, <Files>, <VirtualHost>) 안에 아래 코드 추가

Header always append X-Frame-Options SAMEORIGIN 


* Java Application

response.addHeader("X-Frame-Options", "SAMEORIGIN"); 


* Application Filter

- web.xml

<?xml version="1.0" encoding="UTF-8"?>

<web-app id="WebApp_ID" version="2.4"
    xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <display-name>OWASP ClickjackFilter</display-name>
    <filter>
        <filter-name>ClickjackFilterDeny</filter-name>
        <filter-class>org.owasp.filters.ClickjackFilter</filter-class>
        <init-param>
            <param-name>mode</param-name>
            <param-value>DENY</param-value>
        </init-param>
    </filter>
    
    <filter>
        <filter-name>ClickjackFilterSameOrigin</filter-name>
        <filter-class>org.owasp.filters.ClickjackFilter</filter-class>
        <init-param>
            <param-name>mode</param-name>
            <param-value>SAMEORIGIN</param-value>
        </init-param>
    </filter>
    
    <!--  use the Deny version to prevent anyone, including yourself, from framing the page -->
    <filter-mapping> 
        <filter-name>ClickjackFilterDeny</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
    <!-- use the SameOrigin version to allow your application to frame, but nobody else
    <filter-mapping> 
        <filter-name>ClickjackFilterSameOrigin</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    -->
    
</web-app>

 
- source

package org.owasp.filters;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;

public class ClickjackFilter implements Filter 
{

    private String mode = "DENY";
    	
    /**
     * Add X-FRAME-OPTIONS response header to tell IE8 (and any other browsers who
     * decide to implement) not to display this content in a frame. For details, please
     * refer to http://blogs.msdn.com/sdl/archive/2009/02/05/clickjacking-defense-in-ie8.aspx.
     */
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpServletResponse res = (HttpServletResponse)response;
        res.addHeader("X-FRAME-OPTIONS", mode );			
        chain.doFilter(request, response);
    }
    
    public void destroy() {
    }
    
    public void init(FilterConfig filterConfig) {
        String configMode = filterConfig.getInitParameter("mode");
        if ( configMode != null ) {
            mode = configMode;
        }
    }
    
}


* javascript

<script>

if(top != window) {
  top.location = window.location
}
</script>


참고 : http://www.techstacks.com/howto/disable-http-methods-in-tomcat.html

참고 : http://tyboss.tistory.com/entry/Tomcat-Authorization-Authentication-webxml


Tomat 환경파일 또는 Application의 web.xml에 아래 코드 추가 후 Restart

// Sample Security Constraint
<security-constraint>
  <web-resource-collection>
      <web-resource-name>restricted methods</web-resource-name>
      <url-pattern>/*</url-pattern>
      <http-method>PUT</http-method>
      <http-method>POST</http-method>
      <http-method>DELETE</http-method>
      <http-method>OPTIONS</http-method>
      <http-method>TRACE</http-method>
  </web-resource-collection>
  <auth-constraint />
</security-constraint> 


http-method 에 선언한 method 는 접근이 제한된다.

HTTP Method 목록 : http://ko.wikipedia.org/wiki/HTTP

(OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT)


Apache 환경파일 중 해당 태그(<Directory>, <Location>, <Files>, <VirtualHost>) 안에 아래 설정정보 추가 후 Apache Restart

# rewrite 모듈 로드가 안 된 경우 주석 해제
# LoadModule rewrite_module modules/mod_rewrite.so
<IfModule mod_rewrite.c>
    RewriteEngine On

    # GET, POST를 제외하고 모두 405 페이지로 이동
    RewriteCond %{REQUEST_METHOD} !^(GET|POST)
    RewriteRule .* - [R=405,L] 
</IfModule>


HTTP Method 목록 : http://ko.wikipedia.org/wiki/HTTP

(OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT)



(참고)
* SSL 암호 스위트 지원 제한

SSLCipherSuite HIGH:MEDIUM:!MD5!EXP:!NULL:!LOW:!ADH

* Sublime

홈페이지 : http://www.sublimetext.com/



* 한글 입력 시 한 박자 늦게 입력되는 형상

참고 : https://blog.jsnc.kr/64

1. 단축키 Ctrl + Shift + P로 Command Palette 호출
2. Package control: Install Package 입력 및 선택
3. IMESupport 입력 및 선택



* 설정
1. Preferences > settings 선택
   또는
   Ctrl + Shift + P > settings 선택

2. 아래 항목 추가

{
    # 글꼴 변경
    "font_face": "D2Coding",

    
"font_options": [
        "no_italic",  # Italic체 사용 안함
        "no_bold"  # bold체 사용 안함
    ],

    "ignored_packages":
    [
        "Vintage"
    ]



* 단축키 수정
1. Preferences > Key Bindings
   또는
   Ctrl + Shift + P > Key Bindings 선택

2. 아래 항목 추가

[
    # Ctrl + W로 탭만 닫고 프로그램 닫지 않기
    { "keys": ["ctrl+w"], "command": "close_file" },

    # Ctrl + D 로 현재 라인 삭제
    { "keys": ["ctrl+d"], "command": "cut" }





1. 플러그인 설치
  - Eclipse Marketplace 에서 Eclipse Color Theme 검색

2. 테마선택
  - Window > Preferences 에서 General > Appearance > Color Theme 에서 테마 선택

3. 테마추가
  http://eclipsecolorthemes.org/

- Oblivion2.xml

<?xml version="1.0" encoding="utf-8"?>
<colorTheme id="1" name="Oblivion2" modified="2011-04-28 07:41:35" author="Roger Dudler" website="http://www.rogerdudler.com/?p=362">
    <searchResultIndication color="#000000" />
    <filteredSearchResultIndication color="#000000" />
    <occurrenceIndication color="#000000" />
    <writeOccurrenceIndication color="#000000" />
    <findScope color="#111111" />
    <deletionIndication color="#D25252" />
    <sourceHoverBackground color="#000000" />
    <singleLineComment color="#A8A8A8" />
    <multiLineComment color="#A8A8A8" />
    <commentTaskTag color="#A8A8A8" />
    <javadoc color="#A8A8A8" />
    <javadocLink color="#548FA0" />
    <javadocTag color="#A8A8A8" bold="true" />
    <javadocKeyword color="#EA9C77" />
    <class color="#D25252" />
    <interface color="#D197D9" />
    <method color="#FFFFFF" />
    <methodDeclaration color="#BED6FF" />
    <bracket color="#D8D8D8" />
    <number color="#7FB347" />
    <string color="#FFC600" />
    <operator color="#D8D8D8" />
    <keyword color="#FFFFFF" />
    <annotation color="#FFFFFF" />
    <staticMethod color="#BED6FF" />
    <localVariable color="#79ABFF" />
    <localVariableDeclaration color="#BED6FF" />
    <field color="#BED6FF" />
    <staticField color="#EFC090" />
    <staticFinalField color="#EFC090" />
    <deprecatedMember color="#D25252" strikethrough="true" />
    <enum color="#7FB347" />
    <inheritedMethod color="#BED6FF" />
    <abstractMethod color="#BED6FF" />
    <parameterVariable color="#79ABFF" />
    <typeArgument color="#BFA4A4" />
    <typeParameter color="#BFA4A4" />
    <constant color="#EFC090" />
    <background color="#1E1E1E" />
    <currentLine color="#2A2A2A" />
    <foreground color="#D8D8D8" />
    <lineNumber color="#D0D0D0" />
    <selectionBackground color="#000000" />
    <selectionForeground color="#D0D0D0" />
</colorTheme> 


CMD에서 한글이 깨질 때

* 활성코드 확인
  c:\>chcp
  활성 코드 페이지: 949, 활성 코드 페이지: 65001 등등 표시

* 활성코드 수정
  c:\>chcp 949

* chcp 949 적용 시 cmd 창을 다시 열었을 경우 활성코드가 다시 바뀌는 경우
  1. regedit
  2. HKEY_CURRENT_USER\Console
    - CodePage 키 더블클릭 > 단위를 10진수 선택 > 949 설정
  4. HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe
    - CodePage 키 더블클릭 > 단위를 10진수 선택 > 949 설정

* 위 방법으로도 원래대로 돌아가는 경우 cmd를 켤 때마다 chcp 명령어 실행
  1. regedit
  2. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor
    새로만들기 > 문자열 값
    Key : AutoRun
    Value : chcp 949




+ Recent posts