programmera.net -> jax -> normal     för utskrift      info@programmera.net

web.xml

1. web.xml
2. run-as
3. security-constraint
4. login-config

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:

  1. 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).
  2. servlet-name: mappas mot "servlet-mapping"-elementet .
  3. 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:

  1. web-resource-collection: Med detta element avgränsar man vilka resurser som ska skyddas.
  2. role-name: Endast de uppräknade rollerna har tillgång till tjänsten, * betyder att alla har tillgång.
  3. 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:

  1. BASIC: Inloggning med lösenord.
  2. CLIENT-CERT: Symmetrisk HTTP.
  3. FORM: Formulärinloggning.
  4. DIGEST:
Endast BASIC och CLIENT-CERT måste stödjas av webbtjänster.