← Volver a publicaciones

Authenticacion Web con JSP/Servlet

Yo creía que la authentication tipo Realm era únicamente en la configuración del contenedor,

<span style="color:#000000;">        </span><span style="color:#008000;">// para ver si se autenticó</span><span style="color:#000000;"><br />       String auth = <i>request</i>.<i>getHeader</i>(</span><span style="color:#0000ff;">"Authorization"</span><span style="color:#000000;">);<br />       </span><span style="color:#008000;">//si no se autenticó...</span><span style="color:#000000;"><br />       </span><span style="color:#000080;"><b>if</b></span><span style="color:#000000;"> (auth == </span><span style="color:#000080;"><b>null</b></span><span style="color:#000000;">) {<br />           </span><span style="color:#008000;">//... responder al cliente que no está autorizado...</span><span style="color:#000000;"><br />           <i>response</i>.<i>setStatus</i>(<i>response</i>.<i>SC_UNAUTHORIZED</i>);<br />           </span><span style="color:#008000;">//... y pedir que se autentique.</span><span style="color:#000000;"><br />           <i>response</i>.<i>setHeader</i>(</span><span style="color:#0000ff;">"WWW-Authenticate"</span><span style="color:#000000;">, </span><span style="color:#0000ff;">"Basic realm=\"Esbas\""</span><span style="color:#000000;">);<br />       } </span><span style="color:#000080;"><b>else</b></span><span style="color:#000000;"> { </span><span style="color:#008000;">// si se auténtico..</span><span style="color:#000000;"><br />           </span><span style="color:#008000;">//obtenemos el par usuario/contrasenia encriptada</span><span style="color:#000000;"><br />           </span><span style="color:#008000;">//... pero se antepone la palbra Basic</span><span style="color:#000000;"><br />           String cad = auth.substring(</span><span style="color:#0000ff;">6</span><span style="color:#000000;">).trim();<br />           </span><span style="color:#008000;">//.. la clave está encriptada en BASE64..</span><span style="color:#000000;"><br />           sun.misc.BASE64Decoder decoder = </span><span style="color:#000080;"><b>new</b></span><span style="color:#000000;"> sun.misc.BASE64Decoder();<br />           </span><span style="color:#008000;">//... asi que lo decodificaremos</span><span style="color:#000000;"><br />           String clave = </span><span style="color:#000080;"><b>new</b></span><span style="color:#000000;"> String(decoder.decodeBuffer(cad));<br />           </span><span style="color:#008000;">//.. y listo, ya tenemos el par usuario/contraseña</span><span style="color:#000000;"><br />           <i>out</i>.<i>println</i>(clave);<br />       }</span>

` `