Skip to content

Instantly share code, notes, and snippets.

@luke10x
Created December 1, 2018 12:00
Show Gist options
  • Select an option

  • Save luke10x/b64dbc88612f39fbd2cc073aa2aaa6e0 to your computer and use it in GitHub Desktop.

Select an option

Save luke10x/b64dbc88612f39fbd2cc073aa2aaa6e0 to your computer and use it in GitHub Desktop.
package com.discoverops.roleplay;
import io.jsonwebtoken.Jwts;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
@Component
@Order(1)
public class JWTAuthorizationFilter implements Filter {
private static final String SECRET = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtHyDhb7JXslejrcOJM53gjQDOQtF5ihaEpTcT+kONZOwFFLSoH8HZJD//5C3znGx/kIXPJUWGIeuRjQ8XS2ryX0hYwINx0X86b7m+dloO9/Zo1qbfNTc5UE2Qcs58oBcPVN2UEExzouggSVwGMIiQuSrBtzpHY0erzsd3kMUUWZRjChigzWo7TaI+PYxKhQGoGSIb63BLrZ+xXrDHPoNu6LTJb7BQmu0zGRphLO/JGq6sajFjBrEnf5wEK3dSWaMBGzNIKkN3uZS1Xuf74DBPktSUHmLuk40Gja02dpxaRLpiJg8lzfm/yBaqCc4Wk9rMs1XZHBu4kJeuO+2/ACjCQIDAQAB";
private static final String TOKEN_PREFIX = "Bearer";
private static final String HEADER_STRING = "Authorization";
@Override
public void destroy() {
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
throws IOException, ServletException {
if (!(servletRequest instanceof HttpServletRequest)) {
return;
}
HttpServletRequest request = (HttpServletRequest) servletRequest;
String token = request.getHeader(HEADER_STRING);
if (token != null) {
String user = Jwts.parser()
.setSigningKey(SECRET)
.parseClaimsJws(token.replace(TOKEN_PREFIX, ""))
.getBody()
.getSubject();
filterChain.doFilter(servletRequest, servletResponse);
}
}
}
package com.discoverops.roleplay;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.context.annotation.Bean;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@ServletComponentScan
@RestController
@EnableAutoConfiguration
public class RoleplayApplication {
@RequestMapping("/")
String hello() {
return "hello world";
}
public static void main(String[] args) {
SpringApplication.run(RoleplayApplication.class, args);
}
@Bean
public FilterRegistrationBean<JWTAuthorizationFilter> dawsonApiFilter() {
FilterRegistrationBean<JWTAuthorizationFilter> registration = new FilterRegistrationBean<JWTAuthorizationFilter>();
registration.setFilter(new JWTAuthorizationFilter());
return registration;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment