Jelajahi Sumber

测试项目提交

liuwenbin 6 tahun lalu
induk
melakukan
38af3a37d6

+ 13 - 8
demo/demo-lwb/pom.xml

@ -13,11 +13,11 @@
    <artifactId>demo-lwb</artifactId>
    <dependencies>
        <!--<dependency>-->
            <!--<groupId>com.yihu</groupId>-->
            <!--<artifactId>common-security-starter</artifactId>-->
            <!--<version>1.0.1</version>-->
        <!--</dependency>-->
        <dependency>
            <groupId>com.yihu</groupId>
            <artifactId>common-security-starter</artifactId>
            <version>1.0.7</version>
        </dependency>
        <dependency>
            <groupId>com.yihu</groupId>
            <artifactId>common-swagger-starter</artifactId>
@ -29,9 +29,9 @@
            <version>1.1.0</version>
        </dependency>
        <!--<dependency>-->
            <!--<groupId>com.yihu</groupId>-->
            <!--<artifactId>common-data-es-starter</artifactId>-->
            <!--<version>1.1.0</version>-->
        <!--<groupId>com.yihu</groupId>-->
        <!--<artifactId>common-data-es-starter</artifactId>-->
        <!--<version>1.1.0</version>-->
        <!--</dependency>-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
@ -66,6 +66,11 @@
            <artifactId>spring-security-core</artifactId>
            <version>4.1.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.yihu.jw</groupId>
            <artifactId>common-rest-model</artifactId>
            <version>1.0.2</version>
        </dependency>
    </dependencies>
    <build>

+ 6 - 3
demo/demo-lwb/src/main/java/com/demo/config/SwaggerConfig.java

@ -6,6 +6,7 @@ import io.github.swagger2markup.Swagger2MarkupConfig;
import io.github.swagger2markup.Swagger2MarkupConverter;
import io.github.swagger2markup.builder.Swagger2MarkupConfigBuilder;
import io.github.swagger2markup.markup.builder.MarkupLanguage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.RequestHandlerSelectors;
@ -26,7 +27,8 @@ import static springfox.documentation.builders.PathSelectors.regex;
public class SwaggerConfig {
    public static final String system_API = "system"; //系统相关
    @Autowired
    private Docket docket;
    @Bean
    public Docket systemAPI() {
@ -40,7 +42,8 @@ public class SwaggerConfig {
                        regex("/system/.*"),
                        regex("/demo/.*"),
                        regex("/route/.*"),
                        regex("/security/.*")
                        regex("/login/.*"),
                        regex("/tokens/.*")
                ))
                .build()
                .apiInfo(systemApiInfo());
@ -67,7 +70,7 @@ public class SwaggerConfig {
     */
    public static void main(String[] args) throws Exception {
        String groupName="openAPI";
       // String groupName="iot";
        // String groupName="iot";
        URL remoteSwaggerFile = new URL("http://127.0.0.1:8080//v2/api-docs?group="+groupName);
        Path outputFile = Paths.get("open-api/build/"+groupName);

+ 3 - 4
demo/demo-lwb/src/main/java/com/demo/controller/SecurityController.java

@ -2,7 +2,6 @@ package com.demo.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import net.sf.json.JSONObject;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
@ -23,7 +22,7 @@ import java.util.UUID;
 * Created by Administrator on 2018/4/3 0003.
 */
@RestController
@RequestMapping("/security")
@RequestMapping("/login")
@Api(tags = "登陆相关", description = "登陆相关demo")
public class SecurityController {
@ -47,13 +46,13 @@ public class SecurityController {
            //  封装参数,千万不要替换为Map与HashMap,否则参数无法传递
            MultiValueMap<String, String> params= new LinkedMultiValueMap<String, String>();
            //  也支持中文
            params.add("username", "admin");
            params.add("username", "admin11");
            params.add("password", "123456");
            //设置http请求实体
            HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<MultiValueMap<String, String>>(params, headers);
            result = restTemplate.postForObject("http://localhost:8080/authentication/form", requestEntity, String.class);
            result = restTemplate.postForObject("http://localhost:8081/authentication/form", requestEntity, String.class);
        } catch (Exception e) {

+ 18 - 18
demo/demo-lwb/src/main/java/com/demo/service/RBASService.java

@ -1,18 +1,18 @@
//package com.demo.service;
//
//import com.yihu.base.security.rbas.RbasServiceProvider;
//import org.springframework.security.core.Authentication;
//import org.springframework.stereotype.Component;
//
//import javax.servlet.http.HttpServletRequest;
//
///**
// * Created by Administrator on 2018/4/3 0003.
// */
//@Component("rbasServiceProvider")
//public class RBASService implements RbasServiceProvider {
//    @Override
//    public Boolean hasPerssion(HttpServletRequest request, Authentication authentication) {
//        return true;
//    }
//}
package com.demo.service;
import com.yihu.base.security.rbas.RbasServiceProvider;
import org.springframework.security.core.Authentication;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletRequest;
/**
 * Created by Administrator on 2018/4/3 0003.
 */
@Component("rbasServiceProvider")
public class RBASService implements RbasServiceProvider {
    @Override
    public Boolean hasPerssion(HttpServletRequest request, Authentication authentication) {
        return true;
    }
}

+ 50 - 44
demo/demo-lwb/src/main/java/com/demo/service/UserService.java

@ -1,44 +1,50 @@
//package com.demo.service;
//
//import com.yihu.base.security.rbas.ClientServiceProvider;
//import com.yihu.base.security.rbas.UserServiceProvider;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.security.core.authority.AuthorityUtils;
//import org.springframework.security.core.userdetails.User;
//import org.springframework.security.core.userdetails.UserDetails;
//import org.springframework.security.core.userdetails.UsernameNotFoundException;
//import org.springframework.security.crypto.password.PasswordEncoder;
//import org.springframework.security.oauth2.provider.ClientDetails;
//import org.springframework.security.oauth2.provider.ClientRegistrationException;
//import org.springframework.security.oauth2.provider.client.BaseClientDetails;
//import org.springframework.stereotype.Component;
//
//import java.util.ArrayList;
//
///**
// * Created by Administrator on 2018/4/3 0003.
// */
//@Component
//public class UserService implements ClientServiceProvider, UserServiceProvider {
//    @Autowired
//    private PasswordEncoder passwordEncoder;
//
//    @Override
//    public ClientDetails loadClientByClientId(String clientId) throws ClientRegistrationException {
//        BaseClientDetails baseClientDetails = new BaseClientDetails();
//        baseClientDetails.setClientId("client_id");
//        baseClientDetails.setClientSecret("client_secret");
//        return baseClientDetails;
//    }
//
//    @Override
//    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
//        return new User("admin",
//                    passwordEncoder.encode("123456"),
//                    true,
//                    true,
//                    true,
//                    true
//                    , AuthorityUtils.commaSeparatedStringToAuthorityList("admin,ROLE_USER")); //权限
//    }
//}
package com.demo.service;
import com.yihu.base.security.rbas.ClientServiceProvider;
import com.yihu.base.security.rbas.UserServiceProvider;
import com.yihu.base.security.vo.MyUsernameNotFoundException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.authentication.dao.DaoAuthenticationProvider;
import org.springframework.security.core.authority.AuthorityUtils;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.oauth2.provider.ClientDetails;
import org.springframework.security.oauth2.provider.ClientRegistrationException;
import org.springframework.security.oauth2.provider.client.BaseClientDetails;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import java.util.ArrayList;
/**
 * Created by Administrator on 2018/4/3 0003.
 */
@Component
public class UserService implements ClientServiceProvider, UserServiceProvider {
    @Autowired
    private PasswordEncoder passwordEncoder;
    @Override
    public ClientDetails loadClientByClientId(String clientId) throws ClientRegistrationException {
        BaseClientDetails baseClientDetails = new BaseClientDetails();
        baseClientDetails.setClientId("client_id");
        baseClientDetails.setClientSecret("client_secret");
        return baseClientDetails;
    }
    @Override
    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
        if(!"admin".equals(username)){
            throw new MyUsernameNotFoundException("账户不存在");
        }
        return new User("admin",
                passwordEncoder.encode("123456"),
                true,
                true,
                true,
                true
                , AuthorityUtils.commaSeparatedStringToAuthorityList("admin,ROLE_USER")); //权限
    }
}