Hai,<br>I need to use one Interceptor for <br> ●LoginAuthendication.<br>After successful login i need to check the role of the user,depending upon the users role i need to allow some page and block for some users.<br><br><br>
I have attaced my coding here.<br><b>app_aop.dicon<br>:::::::::::::::::::::</b><br>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;<br>&lt;!DOCTYPE components PUBLIC &quot;-//SEASAR//DTD S2Container 2.4//EN&quot;<br>
&nbsp;&nbsp;&nbsp; &quot;<a href="http://www.seasar.org/dtd/components24.dtd">http://www.seasar.org/dtd/components24.dtd</a>&quot;&gt;<br>&lt;components namespace=&quot;app_aop&quot;&gt;<br>&nbsp;&nbsp;&nbsp; &lt;include path=&quot;convention.dicon&quot;/&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;component name=&quot;actionSupportInterceptor&quot; class=&quot;org.seasar.teeda.extension.interceptor.ActionSupportInterceptor&quot; /&gt;<br>&nbsp;&nbsp;&nbsp; &lt;component name=&quot;appFacesExceptionThrowsInterceptor&quot; class=&quot;org.seasar.teeda.core.interceptor.AppFacesExceptionThrowsInterceptor&quot; /&gt;<br>
&nbsp;&nbsp;&nbsp; <b><span style="background-color: rgb(255, 255, 255);">&lt;component name=&quot;LoginAuthInterceptor&quot; class=&quot;pmtool.interceptor.LoginAuthInterceptor&quot; /&gt;</span><br style="background-color: rgb(255, 255, 255);">
<span style="background-color: rgb(255, 255, 255);">&nbsp;&nbsp;&nbsp; &lt;component name=&quot;LoginUserInterceptor&quot; class=&quot;pmtool.interceptor.LoginUserInterceptor&quot; /&gt;</span></b><br>&lt;/components&gt;<span style="background-color: rgb(255, 255, 255);"></span><br>
<br><b><br>customizer.dicon<br>:::::::::::::::::::::::::</b><br>&lt;component name=&quot;pageCustomizer&quot; class=&quot;org.seasar.framework.container.customizer.CustomizerChain&quot;&gt;<br>&nbsp;&nbsp;&nbsp; &lt;initMethod name=&quot;addCustomizer&quot;&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;arg&gt;traceCustomizer&lt;/arg&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/initMethod&gt;<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;<b>&nbsp; &lt;!-- Start&nbsp; Authendication Interceptor--&gt;</b><br>&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &lt;initMethod name=&quot;addAspectCustomizer&quot;&gt;<br>&nbsp;&nbsp;&nbsp; &lt;arg&gt;&quot;LoginAuthInterceptor&quot;&lt;/arg&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;arg&gt;&quot;do.*,initialize, prerender&quot;&lt;/arg&gt;<br>&nbsp; &lt;/initMethod&gt;<br>&nbsp; &lt;initMethod name=&quot;addIgnoreClassPattern&quot;&gt;<br>&nbsp;&nbsp;&nbsp; &lt;arg&gt;<b>&quot;pmtool.web.login&quot;</b>&lt;/arg&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;arg&gt;<b>&quot;LoginPage&quot;</b>&lt;/arg&gt;<br>&nbsp; &lt;/initMethod&gt;<br>&nbsp; <br>&nbsp;&nbsp; &lt;initMethod name=&quot;addIgnoreClassPattern&quot;&gt;<br>&nbsp;&nbsp;&nbsp; &lt;arg&gt;&quot;<b>pmtool.web.error</b>&quot;&lt;/arg&gt;<br>&nbsp;&nbsp;&nbsp; &lt;arg&gt;<b>&quot;Error.</b>*&quot;&lt;/arg&gt;<br>
&nbsp; &lt;/initMethod&gt;<br>&nbsp; &lt;initMethod name=&quot;addIgnoreClassPattern&quot;&gt;<br>&nbsp;&nbsp;&nbsp; &lt;arg&gt;<b>&quot;pmtool.web.exception</b>&quot;&lt;/arg&gt;<br>&nbsp;&nbsp;&nbsp; &lt;arg&gt;&quot;<b>Login.*</b>&quot;&lt;/arg&gt;<br>&nbsp; &lt;/initMethod&gt;<br>
<br>&nbsp; <b>&lt;!--End --&gt;</b><br>&nbsp; <br>&nbsp;&nbsp;<b> &lt;!-- Start --&gt;</b><br>&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &lt;initMethod name=&quot;addAspectCustomizer&quot;&gt;<br>&nbsp;&nbsp;&nbsp; &lt;arg&gt;&quot;LoginUserInterceptor&quot;&lt;/arg&gt;<br>&nbsp;&nbsp;&nbsp; &lt;arg&gt;&quot;do.*,initialize, prerender&quot;&lt;/arg&gt;<br>
&nbsp; &lt;/initMethod&gt;<br>&nbsp; &lt;initMethod name=&quot;addIgnoreClassPattern&quot;&gt;<br>&nbsp;&nbsp;&nbsp; &lt;arg&gt;&quot;pmtool.web.login&quot;&lt;/arg&gt;<br>&nbsp;&nbsp;&nbsp; &lt;arg&gt;&quot;LoginPage&quot;&lt;/arg&gt;<br>&nbsp; &lt;/initMethod&gt;<br>
&nbsp; <br>&nbsp;&nbsp;&nbsp; &lt;initMethod name=&quot;addIgnoreClassPattern&quot;&gt;<br>&nbsp;&nbsp;&nbsp; &lt;arg&gt;&quot;pmtool.web.error&quot;&lt;/arg&gt;<br>&nbsp;&nbsp;&nbsp; &lt;arg&gt;&quot;Error.*&quot;&lt;/arg&gt;<br>&nbsp; &lt;/initMethod&gt;<br>&nbsp; &lt;initMethod name=&quot;addIgnoreClassPattern&quot;&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;arg&gt;&quot;pmtool.web.exception&quot;&lt;/arg&gt;<br>&nbsp;&nbsp;&nbsp; &lt;arg&gt;&quot;Login.*&quot;&lt;/arg&gt;<br>&nbsp; &lt;/initMethod&gt;<br>&nbsp; &lt;initMethod name=&quot;addIgnoreClassPattern&quot;&gt;<br>&nbsp;&nbsp;&nbsp; &lt;arg&gt;&quot;<b>pmtool.web.expensesheet</b>&quot;&lt;/arg&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;arg&gt;<b>&quot;Index.*</b>&quot;&lt;/arg&gt;<br>&nbsp; &lt;/initMethod&gt;<br>&nbsp; &lt;initMethod name=&quot;addIgnoreClassPattern&quot;&gt;<br>&nbsp;&nbsp;&nbsp; &lt;arg&gt;&quot;<b>pmtool.web.menu</b>&quot;&lt;/arg&gt;<br>&nbsp;&nbsp;&nbsp; &lt;arg&gt;<b>&quot;Menu.*</b>&quot;&lt;/arg&gt;<br>
&nbsp; &lt;/initMethod&gt;<br><br>Authendication intercptor is needed for menu and expensesheet pages where the user level check interceptor(second one) is not needed for these pages.So i included in the AddIgnoreClassPattern tag.<br>
<br><br><b>User Check:<br>:::::::::::::::::::::::</b><br><br>public Object invoke(MethodInvocation invocation)throws Throwable{<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; Object ret=null;<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; if (container!=null)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; {<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; Boolean LoginFlg=getSessionAttribute(&quot;<b>usersession</b>&quot;);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; if (LoginFlg==null||!LoginFlg.booleanValue()){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; throw new LoginAuthException(&quot;You are not logged in or your session has closed.Login Here&quot;);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; //return LoginPage.class;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; Throwable cause=null;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; try<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; ret =invocation.proceed();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; }catch(final Throwable t){<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; cause=t;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; if (cause!=null)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; {&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; throw cause;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; return ret;<br>&nbsp;&nbsp; }<br><br><br>public boolean getSessionAttribute(String sessionBindLogin){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; HttpSession session= (HttpSession)container.getExternalContext().getSession();<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(session!=null)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Object log=session.getAttribute(sessionBindLogin);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (log==null){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return false;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; else{<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return true;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return true;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;<br><b>User Level Check<br>::::::::::::::::::::::::::</b><br>public Object invoke(MethodInvocation invocation)throws Throwable{<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; Object ret=null;<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; if (container!=null)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; Boolean loginFlg=getSessionAttribute(&quot;<b>userlevel</b>&quot;);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; if (loginFlg==null||!loginFlg.booleanValue()){<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; throw new LoginAuthException(&quot;you not allowed to access this page&quot;);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; //return LoginPage.class;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; Throwable cause=null;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; try<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; ret =invocation.proceed();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; }catch(final Throwable t){<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; cause=t;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; if (cause!=null)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; {&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; throw cause;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; return ret;<br>
&nbsp;&nbsp; }<br><br>public boolean getSessionAttribute(String sessionBindLogin){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; HttpSession session= (HttpSession)container.getExternalContext().getSession();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(session!=null)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Object log=session.getAttribute(sessionBindLogin);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (log==null){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return false;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; else if(log.equals(&quot;1&quot;)){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return true;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return false;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return true;<br>&nbsp;&nbsp;&nbsp; }<br><br><br><b>LoginPage<br>::::::::::::::</b><br>public Class doLogin() {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(userid.equals(pwd)){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; session.setAttribute(&quot;<b>usersession</b>&quot;, userid);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(userid.equals(&quot;aaa&quot;)){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; session.setAttribute(&quot;<b>userlevel</b>&quot;, &quot;1&quot;);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; session.setAttribute(&quot;<b>userlevel</b>&quot;, &quot;2&quot;);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return MenuPage.class;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return null;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; }<br><br><br>If i use like this for menu page and expensesheet page the login check interceptor has not called because i added these two pages in addIgnoreClassPattern of userlevel check interceptor.<br>
<br><br>I have to include addIgnoreClassPattern for each interceptor.Is it possible or not?<br>If my thinging is not correct..If its not correct then how can i achieve this...<br><br>Please help me to finish this.<br><br>
Thanks in advance..<br><br><br><br><br>