Commit 4f688579 by stylefeng

增加验证token的拦截器

parent d199b5f5
package com.stylefeng.guns.rest.config;
import com.stylefeng.guns.rest.filter.JwtAuthenticationTokenFilter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* web配置
*
* @author fengshuonan
* @date 2017-08-23 15:48
*/
@Configuration
public class WebConfig {
@Bean
public JwtAuthenticationTokenFilter jwtAuthenticationTokenFilter() {
return new JwtAuthenticationTokenFilter();
}
}
package com.stylefeng.guns.rest.controller;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* 常规控制器
*
* @author fengshuonan
* @date 2017-08-23 16:02
*/
@Controller
@RequestMapping("/hello")
public class NormalController {
@RequestMapping("")
public ResponseEntity hello() {
return ResponseEntity.ok("请求成功!");
}
}
package com.stylefeng.guns.rest.filter;
import com.stylefeng.guns.rest.auth.JwtTokenUtil;
import com.stylefeng.guns.rest.config.properties.JwtProperties;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.filter.OncePerRequestFilter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class JwtAuthenticationTokenFilter extends OncePerRequestFilter {
private final Log logger = LogFactory.getLog(this.getClass());
@Autowired
private JwtTokenUtil jwtTokenUtil;
@Autowired
private JwtProperties jwtProperties;
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws ServletException, IOException {
if (request.getServletPath().equals("/" + jwtProperties.getAuthPath())) {
chain.doFilter(request, response);
return;
}
final String requestHeader = request.getHeader(jwtProperties.getHeader());
String username = null;
String authToken = null;
if (requestHeader != null && requestHeader.startsWith("Bearer ")) {
authToken = requestHeader.substring(7);
try {
username = jwtTokenUtil.getUsernameFromToken(authToken);
} catch (IllegalArgumentException e) {
logger.error("an error occured during getting username from token", e);
return;
}
} else {
logger.warn("couldn't find bearer string, will ignore the header");
return;
}
chain.doFilter(request, response);
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment