Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring Security 2 authenticationSuccessHandler_Java_Spring_Spring Security - Fatal编程技术网

Java Spring Security 2 authenticationSuccessHandler

Java Spring Security 2 authenticationSuccessHandler,java,spring,spring-security,Java,Spring,Spring Security,好了,伙计们,我解决了重定向的问题。但现在我有另一个问题。我的web应用程序有三个项目。一个项目是主页,告诉你是否有权限进入这些项目。那部分一切都好。但是现在在另外两个项目中,我有了我的springsecurity.xml。并且有自己的日志页面。但是现在,客户告诉我,他们希望登录页面并将我重定向到主页,这是第一个项目。问题就在这里 <beans:bean id="casAuthenticationFilter" class="org.springframework.security.cas

好了,伙计们,我解决了重定向的问题。但现在我有另一个问题。我的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。和项目的输入,只需单击一次。但每当我登录project 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());
}
公共类SuccessHandler实现AuthenticationSuccessHandler{
@凌驾
AuthenticationSuccess(HttpServletRequest hsr、HttpServletResponse hsr1、身份验证a)上的公共无效引发IOException、ServletException{
Set roles=AuthorityUtils.authorityListToSet(a.getAuthories());
int cont=0;
字符串url=hsr.getRequestURL().toString();
//第二条适用于第三条
字符串ams=”http://192.168.1.32:8080/AMS1.1/";
字符串referer=hsr.getHeader(“referer”);
//Vemos si tenemos el rol de USER y DCS
if(roles.contains(“SETT_用户”)&roles.contains(“DCS_用户”))
{
//德布吉奥酒店
//系统输出打印(“Holaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
//系统输出打印(“Holaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
//是的,我是罗格亚多斯
如果(ams.等于(推荐人))
{
hsr1.sendRedirect(“/DCS?faces redirect=true”);///Si ya estamos logueados que nos redirect a DCS
}
其他的
hsr1.sendRedirect(“/AMS1.1”);//Sino Que nos redireccione al homepage y de ahy al logging
}
else if(roles.contains(“DCS_用户”)&roles.contains(“SETT_用户”))
{
hsr1.sendRedirect(“/DCS?faces redirect=true”);
}
System.out.print(“MIS roleeeees”+roles.toString());
}
}

我很高兴我成功了