zhangxiaoxiao9527 2019-04-22 16:39 采纳率: 0%
浏览 1145

spring security实现QQ授权登陆,默认请求 /auth/qq 被当成普通请求拦截了?

图片说明

securtyConfig中已经apply了这个配置,但是“auth/qq” 却没有进入springsocial的过滤器,而是被当成普通请求直接进入了springsecurity的过滤器,
请求大佬指导yi'xia

  • 写回答

1条回答 默认 最新

  • weixin_43191436 2019-04-24 21:21
    关注

    新版的io.spring.platform集成的jar包是没有spring social的自动配置类的(SocialAutoConfigurerAdapter),可以直接使用其父类进行配置

    
    ```package com.zxx.security.core.social;
    
    import com.zxx.security.core.properties.QQProperties;
    import com.zxx.security.core.properties.SecurityProperties;
    import com.zxx.security.core.social.qq.SpringSocialConfig;
    import com.zxx.security.core.social.qq.connect.QQConnectionFactory;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.core.env.Environment;
    import org.springframework.security.crypto.encrypt.Encryptors;
    import org.springframework.social.UserIdSource;
    import org.springframework.social.config.annotation.ConnectionFactoryConfigurer;
    import org.springframework.social.config.annotation.EnableSocial;
    import org.springframework.social.config.annotation.SocialConfigurerAdapter;
    import org.springframework.social.connect.ConnectionFactory;
    import org.springframework.social.connect.ConnectionFactoryLocator;
    import org.springframework.social.connect.UsersConnectionRepository;
    import org.springframework.social.connect.jdbc.JdbcUsersConnectionRepository;
    import org.springframework.social.security.SpringSocialConfigurer;
    
    import javax.sql.DataSource;
    
    /**
     * @Auther: zxx
     * @Date: 2019/4/17 23:17
     * @Description:
     */
    @Configuration
    @EnableSocial
    public class SocialConfig extends SocialConfigurerAdapter {
        @Autowired
        private DataSource dataSource;
        @Autowired
        private SecurityProperties securityProperties;
    
        @Override
        public UserIdSource getUserIdSource() {
            return new UserIdSource() {
                public String getUserId() {
                    return "zxx";
                }
            };
        }
    
        @Override
        public void addConnectionFactories(ConnectionFactoryConfigurer connectionFactoryConfigurer, Environment environment) {
           connectionFactoryConfigurer.addConnectionFactory(createConnectionFactory());
        }
        public ConnectionFactory<?> createConnectionFactory() {
            QQProperties qqProperties = securityProperties.getSocialProperties().getQqProperties();
            return new QQConnectionFactory("qq", qqProperties.getAppId(), qqProperties.getAppSecret());
        }
        @Override
        public UsersConnectionRepository getUsersConnectionRepository(ConnectionFactoryLocator connectionFactoryLocator) {
            return new JdbcUsersConnectionRepository(dataSource,connectionFactoryLocator, Encryptors.noOpText());
        }
    
        @Bean
        public SpringSocialConfigurer zxxspringSocialConfigurer(){
            SpringSocialConfig config=new SpringSocialConfig("/auth");
            return config;
        }
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常
  • ¥15 关于风控系统,如何去选择