JASPIC에서 일한 지 한시간이 지났습니다. 인증에 JASPIC을 사용할 때 web.xml은 인증 측면에서 여전히 관련이 있습니까?
나는이처럼 보이는web.xml
있습니다
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<security-constraint>
<web-resource-collection>
<web-resource-name>service-broker-related-resources</web-resource-name>
<url-pattern>/v2/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>emcc</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Frob Service Broker</realm-name>
</login-config>
<security-role>
<role-name>emcc</role-name>
</security-role>
</web-app>
는 전 서버 인증 모듈 (SAM)과 설정 및 설치되어 있습니다. 그것은이처럼 내 glassfish-web.xml
에서 언급 한 :
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app httpservlet-security-provider="emccSAM">
내 SAM 잘 작동합니다.
사실, 너무 잘 작동합니다! <url-pattern>
으로 식별되는 요청뿐만 아니라 모든 요청을 가로 채고 있습니다. /v2/*
입니다. 그것은 처음에 나를 놀라게했다.
그러나 이것에 대해 열심히 생각할 때, 이것이 의미가 있다고 생각합니다. SAM은 이제 컨테이너가 아닌 인증을 담당합니다.
이제는 web.xml
이 본질적으로 관련이 없습니까?
그런 다음 내용이 인증 이후에 수행해야 할 작업, 즉 사용자가 SAM을 통해 성공적으로 인증 한 경우 내용이 다르므로 emcc
역할이 있는지 확인하십시오. . 그녀가하지 않으면 아마도 요청이 /v2/
으로 시작되고, 그 후에 우리는 그녀를 부팅시킵니다. 그녀가하지 않으면 요청이 다른 것으로 시작한다고 가정하면
내 SAM이 들어오는 요청의 유효성을 효과적으로 결정해야합니다. 자격이 필요합니까?<security-constraint>
에 설명 된대로 누군가가 인증이 필요한 URI에 액세스하려고 시도 할 때만 SAM이 "정상적으로"트리거 될 것으로 예상됩니다.
JAX-RS Application
클래스에 @ApplicationPath("/v2")
이라는 주석을 달았을 때 기본적으로 설치된 서블릿 만 작동한다는 점에 유의할 가치가 있습니다.