lunes, 18 de febrero de 2008

Login Anónimo en el SSE

Hace poco en un cliente se me solicitó una solución para la siguiente funcionalidad: querían que un informe de descripción de funciones de las unidades organizativas de la compañía, que el Departamento de Personal disponía, en su momento dentro de Meta4PeopleNet, fuera solicitado desde la intranet de la empresa (no desde el SSE)...

Claro, se me ocurrieron algunas soluciones:
  • Sacar el informe de cada Unidad en PDF y dejarlo en el servidor de la intranet. El problema era que si del Dept. de Personal quería modificar algo... deberían entrar en PeopleNet, modificar los datos de la Unidad, generar el informe, y llevarlo al servidor de la intranet... (MALO, MALO!!!!)
  • Sacar el informe de cada Unidad en pdf y dejarlo en un campo blob de la base de datos de PeopleNet. El problema era que era necesario que se generara el informe en pdf cada vez que se modificara la información, y, además, para poder sacarlo sería necesario estar logado,...(REGULAR, REGULAR!!!!)
  • Pero, como os podeis imaginar por el nombre del post, la solución estaba aún por llegar. Es posible logarse al SSE de forma anónima y de esta forma hacer que según se pida la página de login anónimo (una que cree yo mismo) se ejecute un report desde el SSE... ESTA ES LA QUE ME GUSTO :)
Así que me puse a ello:
  • Crearemos una página, por ejemplo,: /sse_generico/espanol/uo_info.jsp que debe recibir un parámetro de la forma "?iduo=0001" y con un formulario que sea capaz de llamar al servlet de "Login" con un parámetro, y aquí está lo importante, "_TYPE_LOGON" con valor "ANONYMOUS".
<%
//Recogemos el parámetro
String sIDWorkUnit = request.getParameter("iduo");
%>

<form id="login_anonymous" name="login_anonymous" action="/servlet/login"
method="post">
<input size="15" type="hidden" id="_TYPE_LOGON" name="_TYPE_LOGON"
value="ANONYMOUS" />
<input type="hidden" id="_LANG" name="_LANG" value="3" />
<input type="hidden" id="_URL" name="_URL" value="/servlet/CheckSecurity/JSP/sse_generico/uo_report.jsp?iduo="<%=sIDWorkUnit%>/>
</form>

  • Luego con poner un submit de este formulario en el evento "onload" del tag "body" se enviaría este formulario, a través del login a la página: sse_generico/espanol/uo_report.jsp que sería la encargada de pasar el parámetro de la Unidad al informe...
  • El único "pero" es que hay que tener bien configurado el usuario ANONYMOUS dentro del configclient.xml (situado en [..]\M4WS\default\WEB-INF\classes\properties):


<ANONYMOUS>

<USER>ANONYMOUS</USER>

<PASSWORD>ANONYMOUSP</PASSWORD>

</ANONYMOUS>


Post relacionados: Obtener un Informe de Meta4 en el ESS/MSS (Link)

1 comentario:

Anónimo dijo...

Hola tengo este problema, reinicie el servidor y al iniciar la pagina SSE
carga sin problema, pero a la hora de firmarme me manda este error....


Error de Meta4WebServices. Error al inicializar el servlet de inicio de sesión. Contacte con su administrador.