본문 바로가기

WAS - WebLogic/각종 설정, 에러 조치

[weblogic] max-request-parameter-count 최대값 변경 | 12c/14c

# 참고 Oracle 문서

How to Set the MaxRequestParameterCount Value in WebLogic Server to Avoid MaxRequestParameterExceedException (Doc ID 1505598.1)

 


 

WebLogic HTTP request parameter 최대 개수의 기본값은 10000개 이다.

parameter를 10000개 초과하여 request에 담아 보내면 아래와 같은 에러가 발생한다.

<Error> <ServletContext> <BEA-000000> <Rejecting request since max request parameter limit exceeded 10000>

 

<max-request-parameter-count> 옵션을 수정하면 되는데, 보안상의 이유로 Admin Console에서 직접 수정할 수가 없다.

request parameter 최대 개수가 커지게 될 수록 DDos 공격과 같은 해킹에 취약해질 수 있기 때문에

해당 옵션을 무분별하게 수정하는 것을 방지하기 위함으로 보인다.

  <server>
    <name>m1</name>
    <listen-port>9001</listen-port>
    <web-server>
      <max-request-parameter-count>20000</max-request-parameter-count>
    </web-server>
    <listen-address>192.168.56.1</listen-address>
  </server>

 

<web-server> 태그 안의 옵션들은

Protocols - HTTP 메뉴에서 보여지는 것들인데,

<max-request-parameter-count> 옵션은 화면 상에 없다.

 

config.xml 을 직접 수정하는 것은 권장하지 않으며,WLST 스크립트를 실행하여 config.xml을 수정하도록 하자.

 


 

#. WLST 스크립트

아래와 같이 작성한다.

connect('<admin_user>','<admin_pwd>','<admin_url>')

edit()
startEdit()
cd('Servers/<server_name>/WebServer/<server_name>')
cmo.setMaxRequestParameterCount(20000)
save()
activate()
exit()

 

작성 예시

connect('weblogic','weblogic1!','t3://192.168.56.1:9000')

edit()
startEdit()
cd('Servers/AdminServer/WebServer/AdminServer')
cmo.setMaxRequestParameterCount(20000)
save()
activate()
exit()

 

Windows 환경에서는 파일 확장자 bat로 한다.

Linux/Unix 환경에서는 파일 확장자 py로 한다.