![](/img/trans.png)
[英]Spring Security authenticationSuccessHandler for RememberMeAuthenticationFilter
[英]Spring Security two authenticationSuccessHandler
好的,我解決了重定向的問題。 但是現在我有另一個問題。 我的Web應用程序包含三個項目。 一個項目是主頁,告訴您是否有權輸入這些項目。 在那部分一切都很好。 但是現在在其他兩個項目中,我有了springsecurity.xml。 並擁有自己的日志頁面。 但是現在客戶告訴我,想要那個登錄頁面並將我重定向到第一個項目的主頁。 問題在這里。
<beans:bean id="casAuthenticationFilter" class="org.springframework.security.cas.web.CasAuthenticationFilter" >
<beans:property name="authenticationManager" ref="authenticationManager" />
<!-- Propiedad añadida para el redireccionamiento a AMS1.1 -->
<beans:property name="authenticationSuccessHandler">
<beans:bean class="org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler">
<beans:property name="defaultTargetUrl" value="http://192.168.1.32:8080/AMS1.1/"/>
<beans:property name="alwaysUseDefaultTargetUrl" value="true"/>
</beans:bean>
</beans:property>
每當我進入首頁時,我都需要兩次單擊兩次。 一個是因為總會重定向,因為我設置了
name =“ alwaysUseDefaultTargetUrl” value =“ true”設置為true。
這是因為每當我進入項目2的登錄頁面時,總會將我重定向到項目1。單擊該項目即可進入。 但是,每當我登錄到項目1時,都需要單擊鏈接中的時間,按鈕或其他任何東西才能進入項目2。
現在我的問題是我是否可以擁有兩個“ authenticationSuccessHandler”。 那將我重定向到項目2。然后單擊一次或某些邏輯或其他內容。
在閱讀並尋找答案之后。 我終於找到了。 所以就到這里。 我為認證創建了自己的課程。
<beans:property name="authenticationSuccessHandler">
<beans:bean class="com.ams.dcs.jsf.extras.SuccesHandler">
</beans:bean>
</beans:property>
還有我的課
public class SuccesHandler implements AuthenticationSuccessHandler {
@Override
public void onAuthenticationSuccess(HttpServletRequest hsr, HttpServletResponse hsr1, Authentication a) throws IOException, ServletException {
Set<String> roles = AuthorityUtils.authorityListToSet(a.getAuthorities());
int cont=0;
String url = hsr.getRequestURL().toString();
// String para ver si ya estamos adentro de la aplicacion o no
String ams="http://192.168.1.32:8080/AMS1.1/";
String referrer = hsr.getHeader("referer");
//Vemos si tenemos el rol de USER y DCS
if(roles.contains("SETT_USER") && roles.contains("DCS_USER") )
{
// para el debugeo
// System.out.print("holaaaaaaaaaaaaaaaaaaaaA:"+url);
// System.out.print("holaaaaaaaaaasdfasdfaaaaaaaaaaaA:"+referrer);
//Si estamos ya logueados
if(ams.equals(referrer))
{
hsr1.sendRedirect("/DCS?faces-redirect=true");// Si ya estamos logueados que nos redireccione a DCS
}
else
hsr1.sendRedirect("/AMS1.1"); // Sino Que nos redireccione al homepage y de ahy al logging
}
else if(roles.contains("DCS_USER") && roles.contains("SETT_USER"))
{
hsr1.sendRedirect("/DCS?faces-redirect=true");
}
System.out.print("MIS ROLEEEES"+roles.toString());
}
}
我很高興自己做到了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.