///*
// * ********************************************************************************************************************
// *
// *                      :*$@@%$*:                         ;:                ;;    ;;
// *                    :@@%!  :!@@%:                       %!             ;%%@@%$ =@@@@@@@%;     @%@@@%%%%@@@@@
// *                   :@%;       :$=                       %%$$$%$$         ;$$  ;$@=   !@$
// *                   =@!                                  %!              @ $=;%   !@@@%:      !$$$$$$$$$$$$$$=
// *                   =@*                                  %!              @ $= % %@=   =%@!      %=
// *              *$%%! @@=        ;=$%%%$*:                %!              @ $= % =%%%%%%@$      *%:         =%
// *            %@@!:    !@@@%=$@@@@%!  :*@@$:              %!              @ $= % $*     ;@      @*          :%*
// *          ;@@!          ;!!!;:         ;@%:      =======@%========*     @ $$ % $%*****$@     :@$=*********=@$
// *          $@*   ;@@@%=!:                *@*
// *          =@$    ;;;!=%@@@@=!           =@!
// *           %@$:      =@%: :*@@@*       %@=                    Copyright (c) 2016-2019.  北京上格云技术有限公司
// *            ;%@@$=$@@%*       *@@@$=%@@%;
// *               ::;::             ::;::                                              All rights reserved.
// *
// * ********************************************************************************************************************
// */
//
//package com.persagy.server
//
//
//import com.persagy.server.sso.UserRealm
//import org.apache.shiro.realm.Realm
//import org.apache.shiro.spring.web.config.DefaultShiroFilterChainDefinition
//import org.apache.shiro.spring.web.config.ShiroFilterChainDefinition
//import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator
//import org.springframework.context.annotation.Bean
//import org.springframework.context.annotation.Configuration
//
//@Configuration
//open class ShiroConfig {
//
//    @Bean
//    open fun userRealm(): Realm {
//        return UserRealm()
//    }
//
//    /**
//     * 这里统一做鉴权，即判断哪些请求路径需要用户登录，哪些请求路径不需要用户登录。
//     * 这里只做鉴权，不做权限控制，因为权限用注解来做。
//     * @return
//     */
//    @Bean
//    open fun shiroFilterChainDefinition(): ShiroFilterChainDefinition {
//        val chain = DefaultShiroFilterChainDefinition()
//
//        // 设置哪些请求可以匿名访问
//        chain.addPathDefinition("/login/**", "anon")
//        chain.addPathDefinition("/user/userInfo", "anon")
//
//        // 由于使用Swagger调试，因此设置所有Swagger相关的请求可以匿名访问
//        chain.addPathDefinition("/swagger-ui.html", "anon")
//        chain.addPathDefinition("/swagger-resources", "anon")
//        chain.addPathDefinition("/swagger-resources/configuration/security", "anon")
//        chain.addPathDefinition("/swagger-resources/configuration/ui", "anon")
//        chain.addPathDefinition("/v2/api-docs", "anon")
//        chain.addPathDefinition("/webjars/springfox-swagger-ui/**", "anon")
//
//        //除了以上的请求外，其它请求都需要登录
//        chain.addPathDefinition("/**", "authc")
//        return chain
//    } // Function shiroFilterChainDefinition()
//
//    @Bean
//    open fun defaultAdvisorAutoProxyCreator(): DefaultAdvisorAutoProxyCreator {
//        val creator = DefaultAdvisorAutoProxyCreator()
//        /**
//         * setUsePrefix(false)用于解决一个奇怪的bug。在引入spring aop的情况下。
//         * 在@Controller注解的类的方法中加入@RequiresRole注解，会导致该方法无法映射请求，导致返回404。
//         * 加入这项配置能解决这个bug
//         */
//        creator.isUsePrefix = true
//        return creator
//    } // Function defaultAdvisorAutoProxyCreator()
//}
