views:

88

answers:

0

my tapestry4-springntlm application is able to access successfully inside (LAN),internal ip address. but when we set it to external ip address and access it from outside, i get 'blank page' 401. i suspect is because spring security setting.

i'm trying to acess http://202.xxx/myapp/app  and get 401+blank screen  (fail)-see below my appContext.xml setting
if access internal ip address http://10.xxx/app  no problem, success
 i also try   http://202.xxx/myapp/dummyJSP.jsp    success  (coz my springsecurity bypass this)

below is my spring bootstrap

21 Jul 2010 10:46:07,559 INFO [main] - FilterChainProxy:

FilterChainProxy[ UrlMatcher = org.springframework.security.util.AntUrlPathMatcher[requiresLowerCase='true']; Filter Chains: {/cannotlogin.jsp=[], /.jsp=[], /css/=[], /images/=[], /js/=[], /development-bundle/=[], /dwr/=[], /emptyform/=[], /*=[org.springframework.security.concurrent.ConcurrentSessionFilter[ order=100; ], org.springframework.security.context.HttpSessionContextIntegrationFilter[ order=200; ], org.springframework.security.ui.ExceptionTranslationFilter[ order=1400; ], org.springframework.security.ui.ntlm.NtlmProcessingFilter[ order=1500; ], org.springframework.security.ui.SessionFixationProtectionFilter[ order=1600; ], org.springframework.security.intercept.web.FilterSecurityInterceptor@1c233dd]}]

my appcontext.xml setting

 <security:http access-denied-page="/cannotlogin.jsp"
     entry-point-ref="ntlmEntryPoint" 
     servlet-api-provision="false" 
     >

     <security:intercept-url pattern="/**" access="ROLE_USER"  />

why i get 401 when accessing from outside through external ip address? this doesnt happen in internal ip address

below is my log error

21 Jul 2010 11:47:25,497 DEBUG [http-2020-6] - Starting NTLM handshake
21 Jul 2010 11:47:25,497 DEBUG [http-2020-6] - Authentication exception occurred; redirecting to authentication entry point
org.springframework.security.ui.ntlm.NtlmBeginHandshakeException: NTLM
 at org.springframework.security.ui.ntlm.NtlmProcessingFilter.doFilterHttp(NtlmProcessingFilter.java:324)

ntlmprocessingfilter.java

if (ntlmState == null) {
    if (forceIdentification) {
        logger.debug("Starting NTLM handshake");
        session.setAttribute(STATE_ATTR, BEGIN);
        throw new NtlmBeginHandshakeException();   (line 324)
    }