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;
        }
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。