WebCenter 12c 이후 추가된 ESAPI .

보안관련 모듈인 듯 한데, 시도때도 없이 로그에 나타나서 상당히 곤혹스러웠다.

WebCenter Logger 관련 설정을 이렇게 저렇게 바꿔 보아도 저 로그는 없어지지 않고..

구글신도 이상한 소리만 해 대고..

하지만 궁하면 찾는다고, 결국 로그를 없애는 방법을 찾았다.


다음 단계를 참고..

1. ORA_HOME/wcportal/common/lib 폴더로 이동


2. 해당 폴더에 ESAPI.properties 파일이 있는지 확인


3. 이 파일을 열어서, 경고에 나타나는 속성값을 추가하고 


4. WebLogic 서버 전체를 재시작..



끝!






C:\Oracle_Home\wcportal\common\lib\ESAPI.properties

#

# ESAPI Validation

#

# The ESAPI Validator works on regular expressions with defined names. You can define names

# either here, or you may define application specific patterns in a separate file defined below.

# This allows enterprises to specify both organizational standards as well as application specific

# validation rules.

#

# Validator.ConfigurationFile=validation.properties

#



# HTTP Request Validation Rules 

Validator.HTTP_QUERY_PATTERN_STRING=^[[\\w_\\?\\\\\\/\\.\\&\\,\\- =\\%+\\*!:#()]]+$

Validator.HTTP_REQPARAM_LENIENT_PATTERN_STRING=^(<|%3c|\\&lt;|</|%3c%2f|\\&lt;/\\&gt;)(script|script |embed|object|applet|iframe)(>|%3e|\\&gt;)$

Validator.HTTP_REQPARAM_STRICT_PATTERN_STRING=^[[\\w_\\\\/\\.\\&\\-=:\\%\?#(){ }!+\\*]]+$

Validator.EMAIL=^[A-Za-z0-9._%'-]+@[A-Za-z0-9.-]+\\.[a-zA-Z]{2,4}$

ESAPI.Encoder=org.owasp.esapi.reference.DefaultEncoder

Encryptor.CharacterEncoding=UTF-8



블로그 이미지

낭만가을

,

관련 API 주소 입니다.

다양한 REST Service를 제공하므로 활용하면 될듯 합니다.

 

http://download.oracle.com/docs/cd/E17904_01/webcenter.1111/e10148/jpsdg_rest_api.htm



블로그 이미지

낭만가을

,

- Custom portal Instance 생성시 추가 작업사항
: 아래 내용은 콘솔에서 모두 작업이 가능합니다. 각각에 대한 대상만 추가하면 됩니다.

1. JNDI 대상 추가 : mds-SpacesDS(jdbc/mds/SpacesDS)

2. 라이브러러리 대상 추가
- oracle.webcenter.framework 
- oracle.webcenter.skin 
- oracle.sdp.client
- oracle.webcenter.framework 
- oracle.webcenter.skin 
- oracle.sdp.client
- p13n-app-lib-base 
- oracle.ucm.ridc.app-lib 
- wcps-util-app-lib 
- content-app-lib 
- oracle.webcenter.spaces.fwk 
- oracle.webcenter.activitygraph.lib
- p13n-app-lib-base 
- oracle.ucm.ridc.app-lib 
- wcps-util-app-lib 
- content-app-lib 
- oracle.webcenter.spaces.fwk 
- oracle.webcenter.activitygraph.lib
- oracle.webcenter.composer 
- content-web-lib 
- wcps-services-client-web-lib 
- jaxrs-framework-web-lib
- jersey-web-lib

아래의 방법으로 하시면 됩니다.

1. 데이터소스를 선택하고 해당 데이터소스를 클릭합니다.

2. 데이터소스 설정중 대상에 커스텀포탈 인스턴스를 추가합니다.

 

3. 배치에서 해당 라이브러리를 찾습니다.

 

4. 해당 라이브러리를 선택후 대상 탭에서 커스텀포탈 인스턴스를 추가합니다.

 

5. 위 방법으로 나머지 라이브러리도 동일하게 작업하면 됩니다.



블로그 이미지

낭만가을

,

<meta name="DuzonNewturns" content="DocuStyler" />


- Using WebCenter Spaces Extension Samples (11.1.1.5.0) 문서는 웹센타 스페이스 확장방법에 대해서

기술해 놓았습니다. 이번에 사용한 사항은 세션 타임아웃 변경하는법 입니다. 모든 내용이 메뉴얼에 자세하게

기술되어 있습니다. 중간 중간에 필요한 부분과 간단한 멘트를 달아 두었습니다. 참고 하시기 바랍니다.

 

단, 처음부터 WebCenterSpacesSharedLibExtension 프로젝트를 빌드하시면 안됩니다. 필요한 라이브러리만

선택해서 빌드해야 합니다.

 

추가로 제가 회사에서 테스트한 파일을 첨부 하였습니다. 참고 하시기 바랍니다.

 

 

- 첨부파일

1. 메뉴얼

2. 세션타임 줄이는 소스

3. 빌드 환경설정

4. 필요한 샘플 프로젝트

 

 

- 차례 중에서 필요한 부분 입니다.(목차의 일부분 입니다.)

Deploying and Undeploying Sample WebCenter Spaces Extensions 3
Overview .. 3
Downloading, Copying, and Exploring the WebCenter Spaces Sample Workspace .. 4
Setting Build and Deployment Options (config.properties) .. 8
Building and Deploying a Custom Shared Library for WebCenter Spaces .. 10
Removing WebCenter Spaces Extensions .. 11
Sample – Customizing the Session Timeout .. 14

 

 

- 커스텀 라이브버리 추가 방법 순서 입니다.(메뉴얼 순서 그대로 입니다.)

1. JavaCodeAndSessionTimeout 내에 SessionTimeoutPhaseListener.java 를 수정합니다.

2. JavaCodeAndSessionTimeout 프로젝트를 jar로 컴파일해서 생성합니다.

3. WebCenterSpacesSharedLibExtension 프로젝트에 생성한 jar 파일을 추가합니다.

4. WebCenterSpacesSharedLibExtension 내 config.properties 파일을 로컬 환경에 맞게 설정합니다.

5. 메뉴얼에 따라서 빌드 합니다.

6. 웹로직 콘솔에 접속하여 라이브러리 추가 여부를 확인하면 됩니다.

7. 이후 제대로 라이브러라가 추가 되었다면 세션 만료후 SessionExpired.html로 자동 이동 합니다.



블로그 이미지

낭만가을

,

#!/bin/sh
USER_NAME=웹로직서버계정
DOMAIN_NAME=웹로직도메인

SERVER_NAME=서버명

ADMIN_URL=t3://서버IP or 도메인:7001
DOMAIN_HOME=/webcenter/wls1036/user_projects/domains/웹로직도메인
LOG_DIR=/webcenter/wls1036/user_projects/domains/웹로직도메인/logs
LOG_NAME=$SERVER_NAME
LANG=C
# Check User Name
IAM=`id | awk '{print substr($1, 1, index($1,")")-1 )}' | awk '{print substr($1, index($1,"(")+1 )}'`

# Check startup user validation
if [ $USER_NAME != $IAM ]
then
echo "Startup Error :[SALT-WLS001] User validation is failed. This instance has been started as \"$IAM\", actual script owner is
 \"$USER_NAME\""
 exit
 fi

 # Check process status
 PID=`ps -ef|grep java|grep :${DOMAIN_NAME}_${SERVER_NAME} |awk '{print $2}'`
 if [ "$PID" != "" ]
 then
 echo "Startup Error :[SALT-WLS002] \"${DOMAIN_NAME}_${SERVER_NAME}\" server is already running !!!"

 exit
 fi


mv $LOG_DIR/stdout/$LOG_NAME.log $LOG_DIR/stdout/backup/$LOG_NAME.log.`date '+20%y%m%d_%H%M%S'`

########## Custom Args ##########
#Common start Args
 USER_MEM_ARGS="-D:${DOMAIN_NAME}_${SERVER_NAME}  -Xms2048m -Xmx2048m -XX:MaxPermSize=512m"
#64bit JDK
 ## only HP
 #USER_MEM_ARGS="${USER_MEM_ARGS} -d64"

#GC (not setted)

#GC Log
 ## General
 ## GC Log gc file write
        USER_MEM_ARGS="${USER_MEM_ARGS} -verbose:gc -XX:+PrintGCDetails -Xloggc:${LOG_DIR}/gc/${SERVER_NAME}_GC_`date '+%y%m%d_%H%M%S'`.gc"
        ## GC Log stdout file write
        #USER_MEM_ARGS="${USER_MEM_ARGS} -verbose:gc -XX:+PrintGCDetails -Xloggc:=${LOG_DIR}/gc/${SERVER_NAME}_GC_`date '+%y%m%d_%H%M%S'`.gc"
 ##HP only 
 #USER_MEM_ARGS="${USER_MEM_ARGS} -Xverbosegc:file=${LOG_DIR}/gc/${SERVER_NAME}_GC_`date '+%y%m%d_%H%M%S'`.gc"

 ##only IBM
  #USER_MEM_ARGS="${USER_MEM_ARGS} -Xverbosegclog:${LOG_DIR}/gc/${SERVER_NAME}_GC_`date '+%y%m%d_%H%M%S'`.gc" 
  
#HeapDump
 ## hp : over 1.4.2.10 or over 1.5.0.03
 ## sun :  over 1.4.2_12 or over 1.5.0_07 
 #USER_MEM_ARGS="${USER_MEM_ARGS} -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${LOG_DIR}/heapdump"

 ##IBM only ( kill -3 <pid> makes heap dump setting)
 #export IBM_HEAPDUMP=true
 #export IBM_HEAP_DUMP=true
 #export IBM_HEAPDUMP_OUTOFMEMORY=true
 #export IBM_JAVADUMP_OUTOFMEMORY=true
 #export IBM_HEAPDUMPDIR=${LOG_DIR}/heapdump
 #export IBM_JAVACOREDIR=${LOG_DIR}/heapdump


#Jconsole using
 #USER_MEM_ARGS="${USER_MEM_ARGS} -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

#Common end Args
 export USER_MEM_ARGS
########## Custom Args ##########


nohup  $DOMAIN_HOME/bin/startManagedWebLogic.sh $SERVER_NAME $ADMIN_URL >> $LOG_DIR/stdout/$LOG_NAME.log &
sleep 2

# don't use this in WLS 8.1 at AIX
tail -f $LOG_DIR/stdout/$LOG_NAME.log

 


블로그 이미지

낭만가을

,

SE가 웹센터 설치후 각각의 서버를 본격적으로 띄우기전에 수동으로 서버를 띄워서 각각의 서버의 설정과 필요한 데이타들을 생성해주어야 각서버의 구동 스크립트를  이용해서 구동했을때 문제없이 서버가 로딩이 된다.

 

1. /webcenter/wls1036/user_projects/domains/ECOLL/bin 위치에 보면 웹로직의 구동 스크립트가 있다. 

./startManagedWebLogic.sh 구동하려는서버명 http://192.168.xxx.xxx:7001 (콘솔)

와 같이 실행을 하면 해당 서버가 기동하게 되고  /webcenter/wls1036/user_projects/domains/ECOLL/servers/ 밑에 해당 서버의 정보가 생성되어진다.

 

2. 수동구동을 통행 기본적인 정보가 만들어 지면 수동으로 올린 해당 서버를 종료하고

/webcenter/wls1036/user_projects/domains/ECOLL/servers/Adminserver/security 디렉토리를 복사해서 구동하려는 서버 위치에 복사해준다.

 

3. /webcenter/wls1036/user_projects/domains/ECOLL 에서 구동 스크립트를 이용해 구동한다.

 


블로그 이미지

낭만가을

,