Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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
Spring security Spring Social+;内置注册和登录_Spring Security_Facebook Login_Spring Security Oauth2_Spring Social_Spring Social Facebook - Fatal编程技术网

Spring security Spring Social+;内置注册和登录

Spring security Spring Social+;内置注册和登录,spring-security,facebook-login,spring-security-oauth2,spring-social,spring-social-facebook,Spring Security,Facebook Login,Spring Security Oauth2,Spring Social,Spring Social Facebook,我需要将SpringSocial集成到一个应用程序中,并使其与使用SpringSecurity的正常登录和登录一起工作。我已经设法使它们分开工作,但难以使它们一起工作。为了只实现SpringSocialFacebook,我按照教程进行了一些调整(因为它过时了,.getUserProfile()不起作用),我已经成功地对用户进行了身份验证,并检索了我需要的所有数据。另一方面,我的应用程序使用spring security注册和登录。下面是我的应用程序的配置文件。 我试图做的是实现从到我的应用程序的

我需要将SpringSocial集成到一个应用程序中,并使其与使用SpringSecurity的正常登录和登录一起工作。我已经设法使它们分开工作,但难以使它们一起工作。为了只实现SpringSocialFacebook,我按照教程进行了一些调整(因为它过时了,.getUserProfile()不起作用),我已经成功地对用户进行了身份验证,并检索了我需要的所有数据。另一方面,我的应用程序使用spring security注册和登录。下面是我的应用程序的配置文件。 我试图做的是实现从到我的应用程序的所有功能。但它似乎不起作用

问题是如何将它们一起实施?所以用户可以选择通过应用程序或facebook注册

WebSecurityConfiguration.java

@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
  @Autowired
  DetailService userDetailsService;

  @Override
  protected void configure(AuthenticationManagerBuilder auth) throws Exception {
    auth.userDetailsService(userDetailsService).passwordEncoder(User.PASSWORD_ENCODER);
  }

  @Override
  protected void configure(HttpSecurity http) throws Exception {
    http
        .authorizeRequests()
        .antMatchers("/signup").permitAll()
        .anyRequest().permitAll()
        .and()
        .formLogin()
        .loginPage("/login")
        .permitAll()
        .successHandler(loginSuccessHandler())
        .failureHandler(loginFailureHandler())
        .and()
        .logout()
        .permitAll()
        .logoutSuccessUrl("/login")
        .and()
        .csrf().disable();

    http.headers().frameOptions().disable();
  }

  public AuthenticationSuccessHandler loginSuccessHandler() {
    return (request, response, authentication) -> response.sendRedirect("/");
  }

  public AuthenticationFailureHandler loginFailureHandler() {
    return (request, response, exception) -> {
      response.sendRedirect("/login");
    };
  }

  @Bean
  public EvaluationContextExtension securityExtension() {
    return new EvaluationContextExtensionSupport() {
      @Override
      public String getExtensionId() {
        return "security";
      }

      @Override
      public Object getRootObject() {
        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
        return new SecurityExpressionRoot(authentication) {
        };
      }
    };
  }

}