解析jwt
This commit is contained in:
+3
-3
@@ -74,7 +74,6 @@ public class AuthorizationProviderConfig extends AuthorizationServerConfigurerAd
|
||||
endpoints.tokenEnhancer(enhancerChain)
|
||||
.accessTokenConverter(jwtAccessTokenConverter);
|
||||
}
|
||||
super.configure(endpoints);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -90,8 +89,9 @@ public class AuthorizationProviderConfig extends AuthorizationServerConfigurerAd
|
||||
builder.withClient(client.getClientId()).secret(client.getClientSecret())
|
||||
.accessTokenValiditySeconds(client.getAccessTokenValiditySeconds())
|
||||
.authorizedGrantTypes("refresh_token","password")
|
||||
.scopes("all","read","write")
|
||||
.and();
|
||||
//refreshToken的过期时间,refreshToken是用来在用户无感知的情况下换取token的
|
||||
.refreshTokenValiditySeconds(2592000)
|
||||
.scopes("all","read","write");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,7 +44,13 @@
|
||||
<groupId>com.github.tomakehurst</groupId>
|
||||
<artifactId>wiremock</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<!--jwt令牌解析-->
|
||||
<dependency>
|
||||
<groupId>io.jsonwebtoken</groupId>
|
||||
<artifactId>jjwt</artifactId>
|
||||
<version>0.7.0</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
|
||||
+14
-1
@@ -1,12 +1,19 @@
|
||||
package com.micro.fast.security.demo.controller;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonView;
|
||||
import com.micro.fast.security.core.master.SecurityProperties;
|
||||
import com.micro.fast.security.demo.pojo.User;
|
||||
import io.jsonwebtoken.Claims;
|
||||
import io.jsonwebtoken.Jwts;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.BindingResult;
|
||||
import org.springframework.validation.FieldError;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.validation.Valid;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -14,11 +21,17 @@ import java.util.List;
|
||||
@RestController
|
||||
@RequestMapping("/user")
|
||||
public class RestfulController {
|
||||
@Autowired
|
||||
private SecurityProperties securityProperties;
|
||||
|
||||
@GetMapping("/{id:\\d+}")//使用正则表达式指定传入的参数只能是数字
|
||||
@JsonView(User.DetailView.class)
|
||||
public User getInfo(@PathVariable("id") String id){
|
||||
public User getInfo(@PathVariable("id") String id, HttpServletRequest request) throws UnsupportedEncodingException {
|
||||
User user = new User("tom");
|
||||
String authorization = request.getHeader("Authorization");
|
||||
String token = StringUtils.substringAfter(authorization, "bearer ");
|
||||
//解析jwt
|
||||
Claims body = Jwts.parser().setSigningKey(securityProperties.getOauth2().getJwtSigningKey().getBytes("UTF-8")).parseClaimsJws(token).getBody();
|
||||
return user;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user