Saludox,
pues, eso compañeros. tengo un servidor tomcat con axis instalado. el acceso al panel de control de tomcat pide autenticación, pero tengo acceso libre a servidortomcat.com/axis/
De que manera puedo hacerlo privado?
saludox
solicitar autenticación cuando intenten entrar a axis
Comenzado por
poliburro
, may 10 2011 11:35
2 respuestas en este tema
#1
Escrito 10 mayo 2011 - 11:35
#3
Escrito 11 mayo 2011 - 01:26
Los servicios web fueron diseñados para que sus interfaces sean públicas. Ahora, sí se pensó en autenticar las llamadas reales a los servicios. Lo que te dice escafandra es para usar los estándares de seguridad de los servicios web. A mi me parecen algo obscuros y por eso evito usarlos. A la hora de decirle a un cliente que se conecte se acordarán de tu querida madre
A mi me parecen factibles estas dos opciones:
* Agregar un objeto con las credenciales a los parámetros de los métodos. Tal como hice acá http://m-lat.net/axi...lAppHelper?wsdl es que es imposible que los clientes hagan más de eso
* Utilizar la seguridad integrada de J2EE. Es una configuración que puedes aplicarle al web.xml de la aplicación web axis2 para que requiera cifrado y/o autorización en las llamadas a ciertos recursos. Tienes que crear un "Realm" en el servidor Web que es donde están los usuarios y sus contraseñas. Dependiendo del servidor que uses puede apuntar a una base de datos, LDAP, un archivo xml, etc. Luego en el web.xml colocas esto
Luego está la configuración de cómo dará las credenciales
Esto lo que exige es que se envíe usuario y password codificado en Base64 en el header "Autorization:" con cada llamada.
Nota: recomiendo la primera opción te salva de dolores de cabeza
A mi me parecen factibles estas dos opciones:
* Agregar un objeto con las credenciales a los parámetros de los métodos. Tal como hice acá http://m-lat.net/axi...lAppHelper?wsdl es que es imposible que los clientes hagan más de eso
* Utilizar la seguridad integrada de J2EE. Es una configuración que puedes aplicarle al web.xml de la aplicación web axis2 para que requiera cifrado y/o autorización en las llamadas a ciertos recursos. Tienes que crear un "Realm" en el servidor Web que es donde están los usuarios y sus contraseñas. Dependiendo del servidor que uses puede apuntar a una base de datos, LDAP, un archivo xml, etc. Luego en el web.xml colocas esto
xml
<security-constraint> <!-- web resources that are protected --> <web-resource-collection> <web-resource-name>Protected Resource</web-resource-name> <url-pattern>[b]/URL-RELATIVA-DE-LO-QUE-QUIERES-CON-CLAVE[/b]</url-pattern> </web-resource-collection> <auth-constraint> <!-- role-name indicates roles that are allowed to access the web resources specified above --> <role-name>[b]ROL-EN-EL-REALM-QUE-DEBE-TENER-EL-USER[/b]</role-name> </auth-constraint> </security-constraint>
Luego está la configuración de cómo dará las credenciales
xml
<login-config> <auth-method>[b]BASIC[/b]</auth-method> <realm-name>Basic Authentication Example</realm-name> </login-config>
Esto lo que exige es que se envíe usuario y password codificado en Base64 en el header "Autorization:" con cada llamada.
Nota: recomiendo la primera opción te salva de dolores de cabeza