1. web.xml
Nedan visas en minimal "web.xml":
<web-app>
<servlet>
<servlet-name>calculatorJSE</servlet-name>
<servlet-class>net.programmera.ws.calculator.CalculatorImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>calculatorJSE</servlet-name>
<url-pattern>/Calculator</url-pattern>
</servlet-mapping>
</web-app>
|
Märk följande:
- servlet-class: Brukar i vanliga fall peka ut en Servlet, men för webbtjänster används detta element till att peka ut en "service endpoint"-implementationen istället (här kan man tycka att de krånglar till i onödan).
- servlet-name: mappas mot "servlet-mapping"-elementet .
- servlet-name: mappas också mot "servlet-link"-elementet i "webservices.xml".
Märk även:
- OBS: Enligt JSR 921 ska "servlet-mapping"-elementet genereras utifrån WSDL-filen om det saknas. Detta krav verkar JBoss inte uppfylla.
2. run-as
Med "run-as" kan man tvinga webbtjänsten att köra som en viss identitet:
<web-app>
<servlet>
<servlet-name>calculatorJSE</servlet-name>
<servlet-class>net.programmera.ws.calculator.CalculatorImpl</servlet-class>
</servlet>
<run-as>
<role-name>CalcApplication</role-name>
</run-as>
</web-app>
|
Denn angivna identiteten propageras vidare om webbtjänsten gör anrop till t.ex. JDBC, EJB, osv.
3. security-constraint
Med "security-constraint" kan man deklarera vem som ska få tillgång till en viss tjänst. Detta gäller för JSP, servlet, JSE:
<security-constraint>
<web-resouce-collection>
<web-resource-name>Calculator</web-resource-name>
<url-pattern>/Calculator/*</url-pattern>
<http-method>POST</http-method>
</web-resouce-collection>
<auth-constraint>
<role-name>employee</role-name>
<role-name>client</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
<security-constraint>
|
Nedan kommer en kort förklaring:
- web-resource-collection: Med detta element avgränsar man vilka resurser som ska skyddas.
- role-name: Endast de uppräknade rollerna har tillgång till tjänsten, * betyder att alla har tillgång.
- transport-guarantee: CONFIDENTIAL och INTEGRAL indikerar att vi använder SSL. NONE betyder inget.
4. login-config
Med "login-config" kan bestämma vilken loginmetod som ska användas.
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Programmera</realm-name>
</login-config>
|
"auth-method" kan ha följande värden:
- BASIC: Inloggning med lösenord.
- CLIENT-CERT: Symmetrisk HTTP.
- FORM: Formulärinloggning.
- DIGEST:
Endast BASIC och CLIENT-CERT måste stödjas av webbtjänster.