viernes, enero 25, 2008

FreeBSD + Tomcat 5.5 + Apache SOAP (2da parte)

Configuraciones particulares (web.xml):

Listado de directorios:

Para habilitar el listado en algun directorio de nuestras webapps, es necesario modificar el archivo $tomcat_dir/webapps/$nombre_webapp/WEB-INF/web.xml
<servlet>
<servletname>NOMBRE_CUALQUIERA</servletname>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
...
<servlet-mapping>
<servlet-name>MISMO_NOMBRE_QUE_ARRIBA</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
Ojo que url-pattern es respecto a la url de nuestra webapp.

Proteccion de directorios con contraseña:

Ojo que .htaccess no va a funcionar en este caso, es necesario editar el archivo web.xml para realizar esta accion.
<resource-env-ref>
<description>Link a la base de datos de usuarios</description>
<resource-env-ref-name>UserDatabase</resource-env-ref-name>
<resource-env-ref-type>org.apache.catalina.UserDatabase</resource-env-ref-type>
</resource-env-ref>
Con esto definiremos que la informacion de user/pass la obtendremos de un archivo
llamado tomcat-users.xml ubicado en $tomcat_dir/conf/ (ver server.xml <resource name ="UserDatabase" ), podemos cambiar esta configuracion en server.xml para tomar los user/pass de una base de datos accedida por JDBC.
<security-constraint>
<web-resource-collection>
<web-resource-name>CUALQUIER_NOMBRE</web-resource-name>
<url-pattern>/admin/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>NOMBRE_DEL_ROL</role-name>
</auth-constraint>
</security-constraint>

<login-config>
<auth-method>BASIC</auth-method>
<realm-name>NOMBRE_CUALQUIERA</realm-name>
</login-config>
<security-role>
<description>DESCRIPCION</description>
<role-name>NOMBRE_DEL_ROL</role-name>
</security-role>

Por ultimo el método de autentificación existen 4: BASIC el que todos conocemos cuando se abre una ventanita y te pregunta la clave, CLIENT-CERT que es con certificado X509, FORM para utilizar un formulario jsp y DIGEST que que es una forma de encriptación.
El nombre del rol lo debemos tener definido en tomcat-users.xml y el nuevamente el url-pattern es realtivo a la webapp de la cual estamos editando el web.xml.
Ejemplo de tomcat-users.xml:
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager"/>
<role rolename="admin"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="role1" password="tomcat" roles="role1"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
</tomcat-users>

Instalar Driver Oracle:

Descargar Driver jdbc (ojdbc14.jar) de oracle ojo con la versión de la DB y la versión del jdk
http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html
Copiar ojdbc14.jar a $tomcat_dir/common/lib/

No hay comentarios: