Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.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 boot项目中隐式社会注册的实现_Spring_Spring Social_Spring Social Facebook_Spring Social Twitter - Fatal编程技术网

spring boot项目中隐式社会注册的实现

spring boot项目中隐式社会注册的实现,spring,spring-social,spring-social-facebook,spring-social-twitter,Spring,Spring Social,Spring Social Facebook,Spring Social Twitter,通过将spring social signin/signup添加到我当前的spring boot项目中,通过实现类ConnectionSignUp和SignInAdapter,应用程序在社交网络网站授权后,需要在我的控制器中实现“/注册”的映射。在这个方法中,我所做的基本上与我在ConConnectionSignup方法上已经实现的相同。有人知道我能做些什么来避免这种双重性,并将应用程序指向我的ConnectionSignUp类,而不是控制器上的一个额外方法吗 到目前为止,我的实现包括以下类:

通过将spring social signin/signup添加到我当前的spring boot项目中,通过实现类
ConnectionSignUp
SignInAdapter
,应用程序在社交网络网站授权后,需要在我的控制器中实现“/注册”的映射。在这个方法中,我所做的基本上与我在ConConnectionSignup方法上已经实现的相同。有人知道我能做些什么来避免这种双重性,并将应用程序指向我的
ConnectionSignUp
类,而不是控制器上的一个额外方法吗

到目前为止,我的实现包括以下类:

连接签名

@Component
public class CustomConnectionSignUp implements ConnectionSignUp {
  @Autowired
  private UsuarioDao account;

  @Autowired
  private JavaMailSender mailSender;

  public String execute(Connection<?> connection) {
    UserProfile profile = connection.fetchUserProfile();

    String user;
    try {
      Usuario novo = new Usuario(profile.getUsername(),UUID.randomUUID().toString().replaceAll("-", ""),null,null,false,true);
      account.insert(novo);
      return novo.getLogin();
    } catch (Exception e) {
      return null;
    }
  }
}
应用程序属性

# SPRING SOCIAL (SocialWebAutoConfiguration)
spring.social.auto-connection-views=false

# SPRING SOCIAL FACEBOOK (FacebookAutoConfiguration)
spring.social.facebook.app-id=...
spring.social.facebook.app-secret=...

# SPRING SOCIAL TWITTER (TwitterAutoConfiguration)
spring.social.twitter.app-id=...
spring.social.twitter.app-secret=...

在我看来,您似乎没有
连接注册
注入
用户连接存储库
。所以Spring尝试将用户重定向到带有注册表单的页面。要执行隐式注册,请尝试将
ConnectionSignUp
bean传递到
setConnectionSignUp()

@Service

    public class CustomSocialUserDetailsService implements SocialUserDetailsService {
      @Autowired
      private UsuarioDao account;

      public SocialUserDetails loadUserByUserId(String userId) {
        for(Usuario usuario : account.select())
          if(usuario.getLogin().equals(userId))
            return new SocialUser(usuario.getLogin(), usuario.getSenha(), usuario.isEnabled(), usuario.isAccountNonExpired(), usuario.isCredentialsNonExpired(), usuario.isAccountNonLocked(), usuario.getAuthorities());
        return null;
      }
    }
# SPRING SOCIAL (SocialWebAutoConfiguration)
spring.social.auto-connection-views=false

# SPRING SOCIAL FACEBOOK (FacebookAutoConfiguration)
spring.social.facebook.app-id=...
spring.social.facebook.app-secret=...

# SPRING SOCIAL TWITTER (TwitterAutoConfiguration)
spring.social.twitter.app-id=...
spring.social.twitter.app-secret=...