· 4 years ago · Oct 29, 2020, 09:38 AM
1package pl.adambalski.springbootboilerplate.security;
2
3import io.jsonwebtoken.Jwt;
4import io.jsonwebtoken.SignatureAlgorithm;
5import io.jsonwebtoken.security.Keys;
6import org.springframework.beans.factory.annotation.Autowired;
7import org.springframework.context.annotation.Configuration;
8import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
9import org.springframework.security.config.annotation.web.builders.HttpSecurity;
10import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
11import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
12import org.springframework.security.core.userdetails.UserDetailsService;
13import pl.adambalski.springbootboilerplate.security.util.JwtUtil;
14
15import javax.crypto.SecretKey;
16import javax.servlet.Filter;
17import java.io.FileInputStream;
18import java.io.IOException;
19import java.io.InputStream;
20import java.rmi.server.ExportException;
21import java.security.Key;
22import java.util.Properties;
23
24/**
25 * Security configuration for the boilerplate<br><br>
26 *
27 * @see WebSecurityConfigurerAdapter
28 * @see Filter
29 * @author Adam Balski
30 */
31@EnableGlobalMethodSecurity(prePostEnabled = true)
32@EnableWebSecurity
33@Configuration
34public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
35 public static final String JWT_TOKEN_PREFIX = "Bearer ";
36 public static final SecretKey key = Keys.secretKeyFor(SignatureAlgorithm.HS512);
37
38 private UserDetailsService userDetailsService;
39 private JwtUtil jwtUtil;
40
41 @Autowired
42 private void setUserDetailsService(UserDetailsService userDetailsService) {
43 this.userDetailsService = userDetailsService;
44 this.jwtUtil = new JwtUtil(key);
45 }
46
47 @Override
48 protected void configure(HttpSecurity http) throws Exception {
49 super.configure(http);
50 // todo
51 }
52
53 @Override
54 protected UserDetailsService userDetailsService() {
55 return userDetailsService;
56 }
57}
58