Wildfly 8.1.0.Final 사용승인을 요청할 때 공개 자원에 대한 승인을 사용하지 않는 방법은 무엇입니까?
/api/*에 액세스 할 때 기본 인증이 필요한 웹 응용 프로그램을 만들고 싶지만 나머지 응용 프로그램은 열려 있어야합니다. 이를 수행하기 위해 다음과 같은 web.xml을 가지고 있습니다.
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<security-constraint>
<web-resource-collection>
<web-resource-name>Api access</web-resource-name>
<url-pattern>/api/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>api</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<role-name>api</role-name>
</security-role>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Authentication requires api access</realm-name>
</login-config>
</web-app>
브라우저로 테스트하면 예상대로 작동합니다.
http://localhost:8080/myapp/api
... 인증이 필요합니다.
... 인증이 필요하지 않습니다. 여기
는 까다로운 부분 온다 : 제삼자 액세스/MyApp를하고 요청의 인증 헤더 포함
Authorization: Basic ZGlsbDpkYWxs
이 제이보스에 등록 된 사용자가 아니라, 그 야해 물질 때문에을/myapp가 열려 있고 권한이 필요하지 않습니다. 그러나 무엇이 일어나는가 :
401 Unauthorized
왜?/myapp에 대한 보안 제약 조건을 사용하겠다고 말하지 않았지만 아직/myapp/api에 등록 된 보안 제약 조건을 기본값으로 사용합니다.
Jboss AS 7.1.1과 함께 도입 된 새로운 동작입니다. 이것은 최종 결과가 아닙니다.
요청에 권한이 포함되어있을 때 공개 자원에 대한 권한 부여를 사용하지 않는다고 어떻게 알릴 수 있습니까?