<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comentarios en: Framework Seam: autorización en aplicaciones</title>
	<atom:link href="http://www.xnoccio.com/es/286-framework-seam-autorizacion-en-aplicaciones/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.xnoccio.com/es/286-framework-seam-autorizacion-en-aplicaciones/</link>
	<description>Blog de viavansi</description>
	<lastBuildDate>Mon, 30 Jan 2012 19:00:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Por: Angela Restrepo</title>
		<link>http://www.xnoccio.com/es/286-framework-seam-autorizacion-en-aplicaciones/comment-page-1/#comment-1490</link>
		<dc:creator>Angela Restrepo</dc:creator>
		<pubDate>Fri, 23 Sep 2011 22:57:12 +0000</pubDate>
		<guid isPermaLink="false">http://xnoccio.com/286-framework-seam-autorizacion-en-aplicaciones/#comment-1490</guid>
		<description>Hola a todos.

No encuentro la clase ControllerJsfApplication. La he buscado por cielo y tierra y nada...
¿Dónde la puedo conseguir?

Gracias.</description>
		<content:encoded><![CDATA[<p>Hola a todos.</p>
<p>No encuentro la clase ControllerJsfApplication. La he buscado por cielo y tierra y nada&#8230;<br />
¿Dónde la puedo conseguir?</p>
<p>Gracias.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Freddy Moran</title>
		<link>http://www.xnoccio.com/es/286-framework-seam-autorizacion-en-aplicaciones/comment-page-1/#comment-1276</link>
		<dc:creator>Freddy Moran</dc:creator>
		<pubDate>Thu, 23 Sep 2010 16:28:28 +0000</pubDate>
		<guid isPermaLink="false">http://xnoccio.com/286-framework-seam-autorizacion-en-aplicaciones/#comment-1276</guid>
		<description>Hola a todos...

Soy nuevo en este espacio ya tengo algunos meses metiendole mano al SEAM, pero hay algo que aun no puedo resolver...

@gcasadevall, seria de mucha ayuda que me des mas detalles de la solución que propones, creo que seria un punto de partida para dar solución a la situación de roles dinámicos, es decir:
Yo en mi aplicación a través de un formulario creo un rol y le asigno los permisos que deseo que tenga este nuevo rol... El problema esta que al usar una etiqueta de este tipo s:hasRole(’ADMIN’) el rol me queda en Hard Code y no he encontrado la forma de como hacer que este comportamiento sea dinámico y pueda comportarse de acuerdo al rol que he creado en la aplicación.

Disculpen si la pregunta es muy larga o muy fácil de resolver...

Saludos y Gracias</description>
		<content:encoded><![CDATA[<p>Hola a todos&#8230;</p>
<p>Soy nuevo en este espacio ya tengo algunos meses metiendole mano al SEAM, pero hay algo que aun no puedo resolver&#8230;</p>
<p>@gcasadevall, seria de mucha ayuda que me des mas detalles de la solución que propones, creo que seria un punto de partida para dar solución a la situación de roles dinámicos, es decir:<br />
Yo en mi aplicación a través de un formulario creo un rol y le asigno los permisos que deseo que tenga este nuevo rol&#8230; El problema esta que al usar una etiqueta de este tipo s:hasRole(’ADMIN’) el rol me queda en Hard Code y no he encontrado la forma de como hacer que este comportamiento sea dinámico y pueda comportarse de acuerdo al rol que he creado en la aplicación.</p>
<p>Disculpen si la pregunta es muy larga o muy fácil de resolver&#8230;</p>
<p>Saludos y Gracias</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Manuel Navarro Almuedo</title>
		<link>http://www.xnoccio.com/es/286-framework-seam-autorizacion-en-aplicaciones/comment-page-1/#comment-264</link>
		<dc:creator>Manuel Navarro Almuedo</dc:creator>
		<pubDate>Wed, 01 Jul 2009 07:00:18 +0000</pubDate>
		<guid isPermaLink="false">http://xnoccio.com/286-framework-seam-autorizacion-en-aplicaciones/#comment-264</guid>
		<description>Hola Raúl,
perfectamente puedes usarlo para lo que te interesa.

Puedes poner en Sesión un parámetro en el momento en que haga Login el usuario para controlar posteriormente si intenta hacer un segundo Login. Para saber si hay un usuario logado en un instante determinado te basta con hacer &quot;Identity.instance().isLoggedIn()&quot;.
Todas estas comprobaciones las podrías meter dentro de un método en el Authorizator y en el caso de que no se cumplieran las condiciones que indicas podrías lanzar una excepción de tipo &quot;org.jboss.seam.security.AuthorizationException&quot;, que es la misma que se lanza cuando se violan los @Restrict.

Ahora no tendrías un método anotado con @Restrict, sino que el método quedaría algo como:
public void checkLogin() {
  if(!condicionesParaLogin()){
    throw new AuthorizationException(&quot;Debe cerrar el navegador...&quot;);
  }
}</description>
		<content:encoded><![CDATA[<p>Hola Raúl,<br />
perfectamente puedes usarlo para lo que te interesa.</p>
<p>Puedes poner en Sesión un parámetro en el momento en que haga Login el usuario para controlar posteriormente si intenta hacer un segundo Login. Para saber si hay un usuario logado en un instante determinado te basta con hacer &#8220;Identity.instance().isLoggedIn()&#8221;.<br />
Todas estas comprobaciones las podrías meter dentro de un método en el Authorizator y en el caso de que no se cumplieran las condiciones que indicas podrías lanzar una excepción de tipo &#8220;org.jboss.seam.security.AuthorizationException&#8221;, que es la misma que se lanza cuando se violan los @Restrict.</p>
<p>Ahora no tendrías un método anotado con @Restrict, sino que el método quedaría algo como:<br />
public void checkLogin() {<br />
  if(!condicionesParaLogin()){<br />
    throw new AuthorizationException(&#8220;Debe cerrar el navegador&#8230;&#8221;);<br />
  }<br />
}</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: raul alejandro</title>
		<link>http://www.xnoccio.com/es/286-framework-seam-autorizacion-en-aplicaciones/comment-page-1/#comment-263</link>
		<dc:creator>raul alejandro</dc:creator>
		<pubDate>Wed, 24 Jun 2009 18:44:36 +0000</pubDate>
		<guid isPermaLink="false">http://xnoccio.com/286-framework-seam-autorizacion-en-aplicaciones/#comment-263</guid>
		<description>Hola pueblo, disculpen, yo estoy iniciando en el tema, y queria uan ayudita. Quero saver como puedo utilizar el Authenticator, para que un usuario no se pueda logear 2 o mas veces... o loguear un nuevo usuario, teniendo otro logueado y sin aver echo logout.
Espero qeu se entienda mi pregunta.. muchas gracias.. y a la espera de una buena respuesta.. :-)</description>
		<content:encoded><![CDATA[<p>Hola pueblo, disculpen, yo estoy iniciando en el tema, y queria uan ayudita. Quero saver como puedo utilizar el Authenticator, para que un usuario no se pueda logear 2 o mas veces&#8230; o loguear un nuevo usuario, teniendo otro logueado y sin aver echo logout.<br />
Espero qeu se entienda mi pregunta.. muchas gracias.. y a la espera de una buena respuesta.. <img src='http://www.xnoccio.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: LeoxX</title>
		<link>http://www.xnoccio.com/es/286-framework-seam-autorizacion-en-aplicaciones/comment-page-1/#comment-262</link>
		<dc:creator>LeoxX</dc:creator>
		<pubDate>Thu, 15 Jan 2009 23:03:29 +0000</pubDate>
		<guid isPermaLink="false">http://xnoccio.com/286-framework-seam-autorizacion-en-aplicaciones/#comment-262</guid>
		<description>creo q podria hacerse con disabled no estoy seguro pero seria asi:

disabled=&quot;#{s:hasRole(&#039;B&#039;)}&quot;

dependiendo del rol q sea</description>
		<content:encoded><![CDATA[<p>creo q podria hacerse con disabled no estoy seguro pero seria asi:</p>
<p>disabled=&#8221;#{s:hasRole(&#8216;B&#8217;)}&#8221;</p>
<p>dependiendo del rol q sea</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: gcasadevall</title>
		<link>http://www.xnoccio.com/es/286-framework-seam-autorizacion-en-aplicaciones/comment-page-1/#comment-261</link>
		<dc:creator>gcasadevall</dc:creator>
		<pubDate>Thu, 10 Jul 2008 18:18:01 +0000</pubDate>
		<guid isPermaLink="false">http://xnoccio.com/286-framework-seam-autorizacion-en-aplicaciones/#comment-261</guid>
		<description>Yo lo tengo implementado de una forma que en la página solamente ingreso.



Internamente, al renderizar el componente el mismo se fija si se puede mostrar o no segun el rol al cual pertenesca el usuario y los permisos otorgados al rol.

Los permisos serian:
Rol -&gt; Lista de Permisos

donde:

Permiso=
IdRecurso=Pagina.Campo
Enable=true/false

Algo asi.
Saludos</description>
		<content:encoded><![CDATA[<p>Yo lo tengo implementado de una forma que en la página solamente ingreso.</p>
<p>Internamente, al renderizar el componente el mismo se fija si se puede mostrar o no segun el rol al cual pertenesca el usuario y los permisos otorgados al rol.</p>
<p>Los permisos serian:<br />
Rol -&gt; Lista de Permisos</p>
<p>donde:</p>
<p>Permiso=<br />
IdRecurso=Pagina.Campo<br />
Enable=true/false</p>
<p>Algo asi.<br />
Saludos</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: gcasadevall</title>
		<link>http://www.xnoccio.com/es/286-framework-seam-autorizacion-en-aplicaciones/comment-page-1/#comment-260</link>
		<dc:creator>gcasadevall</dc:creator>
		<pubDate>Thu, 10 Jul 2008 18:15:14 +0000</pubDate>
		<guid isPermaLink="false">http://xnoccio.com/286-framework-seam-autorizacion-en-aplicaciones/#comment-260</guid>
		<description>Agrego comentario al anterior. Los roles y usuarios son creados por el usuario y no estan Hard Coded. Es decir una instruccion tipo.  rendered=&quot;isUserInRol(&quot;A&quot;)&quot; no me sirve.</description>
		<content:encoded><![CDATA[<p>Agrego comentario al anterior. Los roles y usuarios son creados por el usuario y no estan Hard Coded. Es decir una instruccion tipo.  rendered=&#8221;isUserInRol(&#8220;A&#8221;)&#8221; no me sirve.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: gcasadevall</title>
		<link>http://www.xnoccio.com/es/286-framework-seam-autorizacion-en-aplicaciones/comment-page-1/#comment-259</link>
		<dc:creator>gcasadevall</dc:creator>
		<pubDate>Thu, 10 Jul 2008 18:13:36 +0000</pubDate>
		<guid isPermaLink="false">http://xnoccio.com/286-framework-seam-autorizacion-en-aplicaciones/#comment-259</guid>
		<description>Muy buena tu respuesta, pero la verdad ya conocia esa solución.
Pero en mi aplicación , si el cliente desea que un usuario perteneciente al rol A pueda ver el campo NOMBRE del formulario PEPE pero que si el usuario pertenece al rol B ese campo solo lo vea pero no pueda modificarlo. Y esta información sea el cliente que la configura mediante un formulario al mantener los datos del rol. No se si me explique bien.</description>
		<content:encoded><![CDATA[<p>Muy buena tu respuesta, pero la verdad ya conocia esa solución.<br />
Pero en mi aplicación , si el cliente desea que un usuario perteneciente al rol A pueda ver el campo NOMBRE del formulario PEPE pero que si el usuario pertenece al rol B ese campo solo lo vea pero no pueda modificarlo. Y esta información sea el cliente que la configura mediante un formulario al mantener los datos del rol. No se si me explique bien.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Manuel Navarro Almuedo</title>
		<link>http://www.xnoccio.com/es/286-framework-seam-autorizacion-en-aplicaciones/comment-page-1/#comment-258</link>
		<dc:creator>Manuel Navarro Almuedo</dc:creator>
		<pubDate>Tue, 24 Jun 2008 21:21:42 +0000</pubDate>
		<guid isPermaLink="false">http://xnoccio.com/286-framework-seam-autorizacion-en-aplicaciones/#comment-258</guid>
		<description>En vez de usar una funcion &quot;isRendered&quot; puedes poner:
rendered=&quot;#{s:hasRole(&#039;RolX&#039;)}&quot; y combinar con operaciones lógicas directamente.

Para gustos los colores...

Saludos.</description>
		<content:encoded><![CDATA[<p>En vez de usar una funcion &#8220;isRendered&#8221; puedes poner:<br />
rendered=&#8221;#{s:hasRole(&#8216;RolX&#8217;)}&#8221; y combinar con operaciones lógicas directamente.</p>
<p>Para gustos los colores&#8230;</p>
<p>Saludos.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Manuel Navarro Almuedo</title>
		<link>http://www.xnoccio.com/es/286-framework-seam-autorizacion-en-aplicaciones/comment-page-1/#comment-257</link>
		<dc:creator>Manuel Navarro Almuedo</dc:creator>
		<pubDate>Tue, 24 Jun 2008 21:13:52 +0000</pubDate>
		<guid isPermaLink="false">http://xnoccio.com/286-framework-seam-autorizacion-en-aplicaciones/#comment-257</guid>
		<description>Bueno, eso se puede resolver de una forma distinta.

Los distintos tags jsf (por ejemplo los de la librería Tomahawk) tienen un atributo que es &quot;rendered&quot;, éste indica si el componente jsf se pinta o no se pinta (true o false respectivamente).
Puedes hacer lo siguiente:
t:inputText ... rendered=&quot;#{beanController.isRendered}&quot;


En el beanController es un típico bean de sesión en el que debes implementar la función &quot;boolean getIsRendered()&quot;, en esa función lo único que debes hacer es mirar si el usuario logado (en sesión) tiene los permisos(roles) necesarios para pintar ese componente€, accediendo a BD para consultarlo (según me has explicado antes).

Puedes tener varias funciones similares getIsRendered para distintos componentes jsf, si es que cada uno de ellos evalua distintas condiciones para pintar dicho elemento, sino puedes usar la misma función en todas.

Espero haberte ayudado. En cualquier caso haz uso del atributo &quot;rendered&quot;.

Saludos.</description>
		<content:encoded><![CDATA[<p>Bueno, eso se puede resolver de una forma distinta.</p>
<p>Los distintos tags jsf (por ejemplo los de la librería Tomahawk) tienen un atributo que es &#8220;rendered&#8221;, éste indica si el componente jsf se pinta o no se pinta (true o false respectivamente).<br />
Puedes hacer lo siguiente:<br />
t:inputText &#8230; rendered=&#8221;#{beanController.isRendered}&#8221;</p>
<p>En el beanController es un típico bean de sesión en el que debes implementar la función &#8220;boolean getIsRendered()&#8221;, en esa función lo único que debes hacer es mirar si el usuario logado (en sesión) tiene los permisos(roles) necesarios para pintar ese componente€, accediendo a BD para consultarlo (según me has explicado antes).</p>
<p>Puedes tener varias funciones similares getIsRendered para distintos componentes jsf, si es que cada uno de ellos evalua distintas condiciones para pintar dicho elemento, sino puedes usar la misma función en todas.</p>
<p>Espero haberte ayudado. En cualquier caso haz uso del atributo &#8220;rendered&#8221;.</p>
<p>Saludos.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

