Pelo que li sobre os frameworks de segurança, vi que o mais recomendado é o Spring Security.Mas no meu caso que não uso Spring no projeto, ele continua sendo o mais recomendado?É mais facil colocar Spring no projeto ou usar Spring Security sem o Spring?
Também procurei sobre JGuard,JAAS,Filters(ñ gostaria de usar esse)…
O Spring security nada mais é do que o acegi, com a diferença que agora é um produto SpringSource I24. Tu ja testou?
R
RafaelViana
Eu sei… Não testei porque não consegui arrumar as configurações dos xml’s =/
Mas só perguntei pq li em algum lugar que se a aplicação não usava Spring dava uma trabalheira, e queria saber se compensava…
R
RafaelViana
Consegui configurar o ACEGI, usando isso no web.xml
<!-- 1. Setup two parameters: --><!-- a) Acegi's configuration file --><!-- b) Loggin configuration file --><context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/applicationContext.xml
</param-value></context-param><context-param><param-name>log4jConfigLocation</param-name><param-value>/WEB-INF/classes/log4j.properties</param-value></context-param><!-- 2. Setup the Acegi Filter Chain Proxy --><filter><filter-name>AcegiFilterChainProxy</filter-name><filter-class>net.sf.acegisecurity.util.FilterToBeanProxy</filter-class><init-param><param-name>targetClass</param-name><param-value>net.sf.acegisecurity.util.FilterChainProxy</param-value></init-param></filter><filter-mapping><filter-name>AcegiFilterChainProxy</filter-name><url-pattern>/*</url-pattern></filter-mapping><!-- 3. Setup three listeners --><!-- a) Setup a listener to connect spring with the web context --><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- b) Setup a listener to connect spring with log4J --><listener><listener-class>org.springframework.web.util.Log4jConfigListener</listener-class></listener><!-- c) Setup ACEGI to subscribe to http session events in the web context --><listener><listener-class>net.sf.acegisecurity.ui.session.HttpSessionEventPublisher</listener-class></listener>
E isso, no applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans><beanid="filterChainProxy"class="net.sf.acegisecurity.util.FilterChainProxy"><propertyname="filterInvocationDefinitionSource"><value>CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
PATTERN_TYPE_APACHE_ANT
/**=httpSessionContextIntegrationFilter,authenticationProcessingFilter,anonymousProcessingFilter,securityEnforcementFilter
</value></property></bean><!-- The first item in the Chain: httpSessionContextIntegrationFilter --><beanid="httpSessionContextIntegrationFilter"class="net.sf.acegisecurity.context.HttpSessionContextIntegrationFilter"><propertyname="context"><value>net.sf.acegisecurity.context.security.SecureContextImpl</value></property></bean><!-- the second item in the chain: authenticationProcessingFilter --><beanid="authenticationProcessingFilter"class="net.sf.acegisecurity.ui.webapp.AuthenticationProcessingFilter"><propertyname="authenticationManager"><refbean="authenticationManager"/></property><propertyname="authenticationFailureUrl"><value>/login.jsf</value></property><propertyname="defaultTargetUrl"><value>/template.jsf</value></property><propertyname="alwaysUseDefaultTargetUrl"><value>true</value></property><propertyname="filterProcessesUrl"><value>/j_acegi_security_check</value></property></bean><beanid="authenticationManager"class="net.sf.acegisecurity.providers.ProviderManager"><propertyname="providers"><list><refbean="daoAuthenticationProvider"/><reflocal="anonymousAuthenticationProvider"/></list></property></bean><beanid="daoAuthenticationProvider"class="net.sf.acegisecurity.providers.dao.DaoAuthenticationProvider"><propertyname="authenticationDao"><reflocal="memoryAuthenticationDao"/></property></bean><beanid="memoryAuthenticationDao"class="net.sf.acegisecurity.providers.dao.memory.InMemoryDaoImpl"><propertyname="userMap"><value>cauirs=cauirs,ROLE_ADMIN,ROLE_USER</value></property></bean><beanid="anonymousAuthenticationProvider"class="net.sf.acegisecurity.providers.anonymous.AnonymousAuthenticationProvider"><propertyname="key"><value>foobar</value></property></bean><!-- the third item in the chain: anonymousProcessingFilter --><beanid="anonymousProcessingFilter"class="net.sf.acegisecurity.providers.anonymous.AnonymousProcessingFilter"><propertyname="key"><value>foobar</value></property><propertyname="userAttribute"><value>anonymousUser,ROLE_ANONYMOUS</value></property></bean><!-- the fourth item in the chain: securityEnforcementFilter --><beanid="securityEnforcementFilter"class="net.sf.acegisecurity.intercept.web.SecurityEnforcementFilter"><propertyname="filterSecurityInterceptor"><reflocal="filterInvocationInterceptor"/></property><propertyname="authenticationEntryPoint"><reflocal="authenticationProcessingFilterEntryPoint"/></property></bean><beanid="filterInvocationInterceptor"class="net.sf.acegisecurity.intercept.web.FilterSecurityInterceptor"><propertyname="authenticationManager"><refbean="authenticationManager"/></property><propertyname="accessDecisionManager"><reflocal="httpRequestAccessDecisionManager"/></property><propertyname="objectDefinitionSource"><value>CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
PATTERN_TYPE_APACHE_ANT
/login.jsf*=ROLE_ANONYMOUS,ROLE_USER,ROLE_ADMIN
/secured*=ROLE_ADMIN
/**=ROLE_USER
</value></property></bean><!-- authenticationManager defined above --><beanid="httpRequestAccessDecisionManager"class="net.sf.acegisecurity.vote.AffirmativeBased"><propertyname="allowIfAllAbstainDecisions"><value>false</value></property><propertyname="decisionVoters"><list><refbean="roleVoter"/></list></property></bean><beanid="roleVoter"class="net.sf.acegisecurity.vote.RoleVoter"/><beanid="authenticationProcessingFilterEntryPoint"class="net.sf.acegisecurity.ui.webapp.AuthenticationProcessingFilterEntryPoint"><propertyname="loginFormUrl"><value>/login.jsf</value></property><propertyname="forceHttps"><value>false</value></property></bean><!-- Done with the chain --><!-- This bean automatically receives AuthenticationEvent messages from DaoAuthenticationProvider --><beanid="loggerListener"class="net.sf.acegisecurity.providers.dao.event.LoggerListener"/></beans>
Só que quando tento rodar o SPRING Security(versão mais nova). uso como exemplo a aplicação de teste tutorial, mas não funciona =/