Hi Les Hazlewood, i am very much happy to see your reply and thankful to you..
i checked that sample web application and it is working very much properly, as you said shiroFilter only doing that becoz there is no separate configauration for that. there they are using shiro.ini file to maintain the data where in our application we are maintaining ElasticSearch only this one is the difference which no where dependent. i am using shiroFilter in web.xml as our sample web application but in my application i am not getting that bread crumbs effect, could you pls suggest me? i am not sure that my configuration is 100% currecct, please help me out in this. here is my web.xml file ---------------------------------- <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:jsp=" http://java.sun.com/xml/ns/javaee/jsp" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <display-name>spring freemarker</display-name> <context-param> <param-name>spring.profiles.default</param-name> <param-value>production</param-value> </context-param> <listener> <listener-class>net.enhancesys.auth.listeners.SystemOptionsUtilitiesListener</listener-class> </listener> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener> <listener> <listener-class>freemarker.ext.jsp.EventForwarding</listener-class> </listener> <filter> <filter-name>shiroFilter</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> <init-param> <param-name>targetFilterLifecycle</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>shiroFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>JQGridTranServlet</servlet-name> <servlet-class>net.enhancesys.crm.singlescreen.servlet.JQGridTranServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>JQGridTranServlet</servlet-name> <url-pattern>/JQGridTranServlet</url-pattern> </servlet-mapping> <servlet> <servlet-name>springServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springServlet</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> <servlet> <description></description> <display-name>JQGridServlet</display-name> <servlet-name>JQGridServlet</servlet-name> <servlet-class>net.enhancesys.crm.singlescreen.servlet.JQGridServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>JQGridServlet</servlet-name> <url-pattern>/JQGridServlet</url-pattern> </servlet-mapping> <servlet> <description></description> <display-name>JQGridCallServlet</display-name> <servlet-name>JQGridCallServlet</servlet-name> <servlet-class>net.enhancesys.crm.singlescreen.servlet.JQGridCallServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>JQGridCallServlet</servlet-name> <url-pattern>/JQGridCallServlet</url-pattern> </servlet-mapping> <servlet> <description></description> <display-name>JQGridIncidentServlet</display-name> <servlet-name>JQGridIncidentServlet</servlet-name> <servlet-class>net.enhancesys.crm.singlescreen.servlet.JQGridIncidentServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>JQGridIncidentServlet</servlet-name> <url-pattern>/JQGridIncidentServlet</url-pattern> </servlet-mapping> <servlet> <description></description> <display-name>JQGridOrdersServlet</display-name> <servlet-name>JQGridOrdersServlet</servlet-name> <servlet-class>net.enhancesys.crm.singlescreen.servlet.JQGridOrdersServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>JQGridOrdersServlet</servlet-name> <url-pattern>/JQGridOrdersServlet</url-pattern> </servlet-mapping> <session-config> <session-timeout>1</session-timeout> <!-- 1 min---> </session-config> </web-app> here this session time out configuration is not getting effected into application, so that i have configured in spring application context file as shown below. shiro-security.xml ------------------------------- <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context=" http://www.springframework.org/schema/context" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx=" http://www.springframework.org/schema/tx" xmlns:jpa="http://www.springframework.org/schema/data/jpa" default-lazy-init="true" xmlns:jdbc=" http://www.springframework.org/schema/jdbc" xmlns:util="http://www.springframework.org/schema/util" xmlns:mvc=" http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.1.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd"> <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager"> <!-- <property name="cacheManager" ref="cacheManager" /> --> <property name="sessionMode" value="native" /> <property name="realm" ref="elasticsearchRealm" /> <property name="sessionManager.globalSessionTimeout" value="60000" /> <!-- 1 min --> </bean> <bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" depends-on="lifecycleBeanPostProcessor" /> <bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor"> <property name="securityManager" ref="securityManager" /> </bean> <!-- <bean id="cacheManager" class="org.apache.shiro.cache.ehcache.EhCacheManager" /> --> <bean id="elasticsearchRealm" class="net.enhancesys.auth.realm.ElasticSearchAuthRealm"> <property name="name" value="elasticsearchRealm" /> <property name="featuresLookupEnabled" value="true"></property> <property name="rolesLookupEnabled" value="true"></property> <property name="credentialsMatcher"> <bean class="org.apache.shiro.authc.credential.HashedCredentialsMatcher"> <property name="hashAlgorithmName" value="SHA-256" /> <property name="storedCredentialsHexEncoded" value="false" /> </bean> </property> </bean> <bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor"> <property name="securityManager" ref="securityManager" /> </bean> <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"> <property name="securityManager" ref="securityManager" /> <property name="loginUrl" value="/login" /> <property name="successUrl" value="redirect:/main/welcome1?cat=dashboard.summary" /> <property name="unauthorizedUrl" value="/login" /> <property name="filterChainDefinitions"> <value> /login = anon /logout = logout /** = authc </value> </property> </bean> </beans> please check this configuration and let me know the problem... thanking you :) On Wed, Jul 3, 2013 at 9:09 PM, Les Hazlewood <[email protected]> wrote: > Hi Nagaraju, > > This is automatically handled by the authentication filter(s) in Shiro: if > they attempt to access a URL and are not logged in, the attempted URL is > saved to their session. After login, Shiro will automatically redirect > them back to the URL they originally tried to access. Shiro's basic sample > web application demonstrates this behavior: > > https://svn.apache.org/repos/asf/shiro/branches/1.2.x/samples/web/ > > HTH, > > -- > Les Hazlewood | @lhazlewood > CTO, Stormpath | http://stormpath.com | @goStormpath | 888.391.5282 > > > On Tue, Jul 2, 2013 at 10:08 PM, Nagaraju Kurma < > [email protected]> wrote: > >> sorry... i didnt get any situationlike that as of now. >> please if u know help me here. >> >> my requirement is i need to implement the bread crumbs in apache shiro >> security api, i referred tutorials but didnt reach my point. >> >> when session is timed out my application automatically redirects to >> login page, when the person is relogged in then i need to show the >> last activity but now from scrach... >> >> ex: user is doing operation like link1----> link-2 -------> link3 then >> now timed out, after relogin i have to show link3 page but not link1.. >> >> can any body help me here.. >> any help is appreciated, thanks :) >> >> On 7/3/13, Pillar <[email protected]> wrote: >> > I created an intermediary Observable class that registers the Realm >> (which >> > implements the Oberserver interface) on startup. When a Controller >> action >> > that would modify permissions gets called, I invalidate the Observable >> > which >> > notifies the Realm, which clears the cache. >> > >> > I don't feel like it's enough indirection, but it works well. >> > >> > Thanks! >> > >> > >> > >> > -- >> > View this message in context: >> > >> http://shiro-user.582556.n2.nabble.com/Updating-permissions-dynamically-at-runtime-tp7578886p7578888.html >> > Sent from the Shiro User mailing list archive at Nabble.com. >> > >> >> >> -- >> >> >> Regards,**** >> >> Nagaraju. >> > > -- Regards,**** Nagaraju.
