0

두 개의 서로 다른 세션에서 두 명의 다른 사용자와 로그인하려고 시도 할 때마다 계속이 오류가 발생합니다.프로그래밍 방식의 로그인에 사용할 수있는 인증 코드가 없습니다.

13 : 27 : 28,444 ERROR [com.commit.steam.rest.RestLoginService] 로그인에 (HTTP-로컬 호스트-127.0.0.1-8080-2) 오류 : javax.servlet.ServletException : 프로그램 로그인에 사용 가능한 인증 at org.apache.catalina.connector.Request.login (Request.java:3254) [jbossweb-7.0.13.Final.jar :] at org.apache.catalina.connector.RequestFacade.login (RequestFacade.java : 1082) [jbossweb-7.0.13.Final.jar :] at com.commit.steam.rest.RestLoginService.login (RestLoginService.java:128) [steam-rest-api-0.1.6-SNAPSHOT.jar :]

standalone.xml에서 :

<security-domain name="steam" cache-type="default"> 
       <authentication> 
        <login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag="required"> 
         <module-option name="dsJndiName" value="java:jboss/datasources/STEAMDS"/> 
         <module-option name="principalsQuery" value="select U.PASSWORD from USERS U where U.EMAIL=?"/> 
         <module-option name="rolesQuery" value="select R.NAME, 'Roles' from USERS U join USER_ROLES UR on U.ID = UR.USER_ID join ROLES R on UR.ROLE_ID = R.ID where U.EMAIL=?"/> 
         <module-option name="hashAlgorithm" value="SHA-256"/> 
         <module-option name="hashEncoding" value="base64"/> 
        </login-module> 
       </authentication> 
      </security-domain> 
,

보스-의 web.xml :

<?xml version="1.0"?> 
<jboss-web> 
    <security-domain>steam</security-domain> 
</jboss-web> 

제가 제 요청 (HttpServletRequest.context.authenticator)를 NonLoginAuthenticator을 가지고 있음을 알 수 있지만 디버깅 7.1.1.Final

으로 보스를-사용 두 번째 세션의 로그인에는 인증자가 연결되어 있지 않습니다 (예 : HttpServletRequest.context.authenticator가 null의 경우) 첫 번째 세션의 다음 요청마다 요청시 동일한 인증자가 사용됩니다 (한 사용자의 비즈니스 플로우를 테스트 할 때).

HttpServletRequest로는 클래스 레벨

@Context 
private HttpServletRequest request; 

protected HttpServletRequest request() { 
    return this.request; 
} 

에 주입 (I 메소드 레벨 주사 이동하려고하고 도움이되지 않았 음). 내 휴식 클래스는 @Stateless bean (주사를 허용)으로 주석 처리됩니다.

나는 다른 세션을 보장하기 위해 Chrome과 FireFox를 사용하여 세션을 전환했지만 아무 것도 변경하지 않았습니다.

누구든지이 문제를 찾는 데 필요한 아이디어 나 단서가 있습니까?

덕분에 많은 아비

답변

1

은 당신의 web.xml에 <security-constraint> 요소를 추가합니다. 다음과 같은 내용 :

<security-constraint> 
     <web-resource-collection> 
       <web-resource-name>Permit all</web-resource-name> 
       <url-pattern>/*</url-pattern> 
     </web-resource-collection> 
     <auth-constraint> 
       <role-name>*</role-name> 
     </auth-constraint> 
    </security-constraint>