利用curl模拟 移动端 接入 spring cloud security OAuth2

获取/更新access_token

[root@localhost bin]# curl -X POST -d grant_type=password -d username=hknaruto -d password=password "http://client1:secret@172.16.1.162/oauth/token"
{"access_token":"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0Nzk4NDI5NzgsInVzZXJfbmFtZSI6ImhrbmFydXRvIiwiYXV0aG9yaXRpZXMiOlsiUk9MRV9VU0VSIl0sImp0aSI6IjFlOWM1NWUyLTM0MDAtNGYxZS04MDI1LTYwYmYxN2Q0MWE5NyIsImNsaWVudF9pZCI6ImNsaWVudDEiLCJzY29wZSI6WyJ1c2VsZXNzIl19.KW2IKXycVcahu7TRuz_1bOhlSD_wPKDfeU-wJhLfklhgrS5yth8_wH6mg3zUrdNYlq0jr4RqAX9QMniHwvFZGsKRekHrIvuFM1wYaxp-52yzqlTnG9uBn1YmLAXa0nDDlxhGV-5Ez_lsZGASqjJtuBk5dMPwV1iNjhnfPzeYe-DehoI2d81Qx0WgQrxXO9ZvpIWZxiHHFlbmsKOH48abrC_4U6TRVc4YpDboeLHTZY9y9fyvoX0iM3iui326I7jb-_t1jL3F1AdqS4uZ2oFjaRHukG7lPrc5kbiejesDq6ftQbvBbL7Nrc1YtA2s1r_VxnPbqFFBdxAfmkLWt6RoEw","token_type":"bearer","refresh_token":"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX25hbWUiOiJoa25hcnV0byIsInNjb3BlIjpbInVzZWxlc3MiXSwiYXRpIjoiMWU5YzU1ZTItMzQwMC00ZjFlLTgwMjUtNjBiZjE3ZDQxYTk3IiwiZXhwIjoxNDgyMzkxNzc4LCJhdXRob3JpdGllcyI6WyJST0xFX1VTRVIiXSwianRpIjoiNWMzMjIzZTYtYjc0Zi00ZDJlLWFlYWEtNDgyZjBkNjY4OTg5IiwiY2xpZW50X2lkIjoiY2xpZW50MSJ9.WIlOq3krXBOJ6N69R3edF5GFKH2T1dKtNjR4EhYDkYjcZFLqjxLsVTRic7oYpR4Klcp8RKDKKObq_yLsyT8vhQ_yoZj-brrzZLgdjYyxKXa-0kfNNdMQlPFXbka6Kg5Bmg2e7U2cZsnYvkyLet3D8fqQS9fsHpL_YAK9D073hDwvP80y7nD6STy8GvQ0AsB6m2JTRDzvLVYdeAh7J36G_iPKu_hEZP2gBkEZZ0Lmpn4CNNtPFmZB7Q4x-VDr73zdz3vhnahhQnLOI1FPtt09BGng_EXn9kr3_Ywl4gAZWI4IPjJKtA2gBhzUyibyaYZbNtEAIXblyLwYb44vbfIwRQ","expires_in":43199,"scope":"useless","jti":"1e9c55e2-3400-4f1e-8025-60bf17d41a97"}

 

 

访问受保护的资源

curl "http://172.16.1.161/api/auth/?access_token=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0Nzk4NDI5NzgsInVzZXJfbmFtZSI6ImhrbmFydXRvIiwiYXV0aG9yaXRpZXMiOlsiUk9MRV9VU0VSIl0sImp0aSI6IjFlOWM1NWUyLTM0MDAtNGYxZS04MDI1LTYwYmYxN2Q0MWE5NyIsImNsaWVudF9pZCI6ImNsaWVudDEiLCJzY29wZSI6WyJ1c2VsZXNzIl19.KW2IKXycVcahu7TRuz_1bOhlSD_wPKDfeU-wJhLfklhgrS5yth8_wH6mg3zUrdNYlq0jr4RqAX9QMniHwvFZGsKRekHrIvuFM1wYaxp-52yzqlTnG9uBn1YmLAXa0nDDlxhGV-5Ez_lsZGASqjJtuBk5dMPwV1iNjhnfPzeYe-DehoI2d81Qx0WgQrxXO9ZvpIWZxiHHFlbmsKOH48abrC_4U6TRVc4YpDboeLHTZY9y9fyvoX0iM3iui326I7jb-_t1jL3F1AdqS4uZ2oFjaRHukG7lPrc5kbiejesDq6ftQbvBbL7Nrc1YtA2s1r_VxnPbqFFBdxAfmkLWt6RoEw&token_type=bearer"



Spring CloudSpring Security是两个独立的框架,Spring Cloud用于构建分布式系统和微服务架构,而Spring Security用于实现安全性和身份验证。 在Spring Cloud中,可以使用Spring Security来实现服务之间的安全通信,以及对微服务进行身份验证和授权等操作。下面是Spring Cloud整合Spring Security的步骤: 1. 添加Spring Security依赖 在pom.xml文件中添加以下依赖: ``` <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-security</artifactId> </dependency> ``` 2. 配置Spring SecuritySpring Cloud微服务的配置文件中,添加以下配置: ``` security: basic: enabled: true user: name: user password: password ``` 这里配置了基本的HTTP身份验证,并指定了用户名和密码。 3. 创建Spring Security配置类 创建一个继承自WebSecurityConfigurerAdapter的配置类,并重写configure(HttpSecurity http)方法,配置安全策略和访问权限等。 ``` @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .anyRequest().authenticated() .and() .httpBasic(); } } ``` 这里配置了所有请求都需要进行身份验证,并使用基本的HTTP身份验证。 4. 配置微服务访问授权 在Spring Cloud微服务的配置文件中,添加以下配置: ``` security: oauth2: resource: jwt: key-value: "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwJLdYVgFzX9QY+7Adk6x\n...(JWT密钥)\n-----END PUBLIC KEY-----" ``` 这里配置了OAuth2资源服务器使用JWT令牌进行访问授权,并指定了JWT密钥。 5. 创建OAuth2资源服务器配置类 创建一个继承自ResourceServerConfigurerAdapter的配置类,并重写configure(HttpSecurity http)方法,配置资源服务器的安全策略和访问权限等。 ``` @Configuration @EnableResourceServer public class ResourceServerConfig extends ResourceServerConfigurerAdapter { @Override public void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers("/api/**").authenticated() .anyRequest().permitAll(); } } ``` 这里配置了所有/api/**的请求需要进行身份验证,其他请求允许匿名访问。 6. 测试安全性 启动Spring Cloud微服务,并使用curl或Postman等工具进行测试。 例如,使用curl命令进行基本身份验证: ``` curl -u user:password http://localhost:8080 ``` 使用curl命令进行JWT令牌访问授权: ``` curl --header "Authorization: Bearer <JWT令牌>" http://localhost:8080/api ``` 以上就是Spring Cloud整合Spring Security的基本步骤,可以根据具体的需求进行灵活配置和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值