From 663b3f4e09f3fdc9f0795a02ec8d35646f282848 Mon Sep 17 00:00:00 2001 From: "fabio.formosa" Date: Thu, 4 Feb 2021 23:33:20 +0100 Subject: [PATCH] #32 clean up --- quartz-manager-parent/pom.xml | 8 +- .../quartz-manager-api/pom.xml | 2 +- .../quartz-manager-security/pom.xml | 2 +- .../controllers/AuthenticationController.java | 82 --------- .../impl/AuthenticationSuccessHandler.java | 31 ++-- .../helpers/impl/ComboEntryPoint.java | 33 ---- .../security/helpers/impl/JwtTokenHelper.java | 3 - .../impl/QuartzManagerHttpSecurity.java | 61 ++++--- .../helpers/impl/RESTRequestMatcher.java | 26 --- .../helpers/impl/WebsocketRequestMatcher.java | 18 -- .../security/models/Authority.java | 50 +++--- .../quartzmanager/security/models/User.java | 157 +++++++++--------- .../repositories/AuthorityRepository.java | 13 -- .../security/repositories/UserRepository.java | 11 -- .../security/services/AuthorityService.java | 13 -- .../security/services/UserService.java | 18 -- .../services/impl/AuthorityServiceImpl.java | 33 ---- .../impl/CustomUserDetailsService.java | 67 -------- .../services/impl/UserServiceImpl.java | 79 --------- .../quartz-manager-ui-webjar/pom.xml | 2 +- .../quartz-manager-web-showcase/pom.xml | 2 +- .../main/resources/_disabled_import.sql_off | 11 -- 22 files changed, 156 insertions(+), 566 deletions(-) delete mode 100644 quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/controllers/AuthenticationController.java delete mode 100644 quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/ComboEntryPoint.java delete mode 100644 quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/RESTRequestMatcher.java delete mode 100644 quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/WebsocketRequestMatcher.java delete mode 100644 quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/repositories/AuthorityRepository.java delete mode 100644 quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/repositories/UserRepository.java delete mode 100644 quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/services/AuthorityService.java delete mode 100644 quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/services/UserService.java delete mode 100644 quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/services/impl/AuthorityServiceImpl.java delete mode 100644 quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/services/impl/CustomUserDetailsService.java delete mode 100644 quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/services/impl/UserServiceImpl.java delete mode 100644 quartz-manager-parent/quartz-manager-web-showcase/src/main/resources/_disabled_import.sql_off diff --git a/quartz-manager-parent/pom.xml b/quartz-manager-parent/pom.xml index 57c3d5f..1869f6b 100644 --- a/quartz-manager-parent/pom.xml +++ b/quartz-manager-parent/pom.xml @@ -11,7 +11,7 @@ it.fabioformosa.quartz-manager quartz-manager-parent - 2.2.2-SNAPSHOT + 3.0.0-SNAPSHOT pom @@ -27,17 +27,17 @@ it.fabioformosa.quartz-manager quartz-manager-api - 2.2.2-SNAPSHOT + 3.0.0-SNAPSHOT it.fabioformosa.quartz-manager quartz-manager-security - 2.2.2-SNAPSHOT + 3.0.0-SNAPSHOT it.fabioformosa.quartz-manager quartz-manager-ui-webjar - 2.2.2-SNAPSHOT + 3.0.0-SNAPSHOT diff --git a/quartz-manager-parent/quartz-manager-api/pom.xml b/quartz-manager-parent/quartz-manager-api/pom.xml index dc931ef..8f01751 100644 --- a/quartz-manager-parent/quartz-manager-api/pom.xml +++ b/quartz-manager-parent/quartz-manager-api/pom.xml @@ -4,7 +4,7 @@ it.fabioformosa.quartz-manager quartz-manager-parent - 2.2.2-SNAPSHOT + 3.0.0-SNAPSHOT quartz-manager-api diff --git a/quartz-manager-parent/quartz-manager-security/pom.xml b/quartz-manager-parent/quartz-manager-security/pom.xml index d8945a3..3320a3a 100644 --- a/quartz-manager-parent/quartz-manager-security/pom.xml +++ b/quartz-manager-parent/quartz-manager-security/pom.xml @@ -3,7 +3,7 @@ it.fabioformosa.quartz-manager quartz-manager-parent - 2.2.2-SNAPSHOT + 3.0.0-SNAPSHOT quartz-manager-security diff --git a/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/controllers/AuthenticationController.java b/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/controllers/AuthenticationController.java deleted file mode 100644 index ca02749..0000000 --- a/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/controllers/AuthenticationController.java +++ /dev/null @@ -1,82 +0,0 @@ -package it.fabioformosa.quartzmanager.security.controllers; - -import java.util.HashMap; -import java.util.Map; - -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.http.ResponseEntity; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; - -import it.fabioformosa.quartzmanager.security.helpers.impl.JwtTokenHelper; -import it.fabioformosa.quartzmanager.security.models.UserTokenState; -import it.fabioformosa.quartzmanager.security.services.impl.CustomUserDetailsService; - -/** - * JWT Temporary disabled - * - * @author Fabio.Formosa - * - */ - -//@RestController -//@RequestMapping( value = "/api", produces = MediaType.APPLICATION_JSON_VALUE ) -public class AuthenticationController { - - static class PasswordChanger { - public String oldPassword; - public String newPassword; - } - - @Autowired - private CustomUserDetailsService userDetailsService; - - @Autowired - JwtTokenHelper tokenHelper; - - @Value("${quartz-manager.security.jwt.expiration-in-sec}") - private int EXPIRES_IN_SEC; - - @Value("${quartz-manager.security.jwt.cookie-strategy-cookie}") - private String TOKEN_COOKIE; - - @RequestMapping(value = "/changePassword", method = RequestMethod.POST) - @PreAuthorize("hasRole('USER')") - public ResponseEntity changePassword(@RequestBody PasswordChanger passwordChanger) { - userDetailsService.changePassword(passwordChanger.oldPassword, passwordChanger.newPassword); - Map result = new HashMap<>(); - result.put( "result", "success" ); - return ResponseEntity.accepted().body(result); - } - - @RequestMapping(value = "/refresh", method = RequestMethod.GET) - public ResponseEntity refreshAuthenticationToken(HttpServletRequest request, HttpServletResponse response) { - - String authToken = tokenHelper.retrieveToken( request ); - if (authToken != null && tokenHelper.canTokenBeRefreshed(authToken)) { - // TODO check user password last update - String refreshedToken = tokenHelper.refreshToken(authToken); - - Cookie authCookie = new Cookie( TOKEN_COOKIE, refreshedToken ); - authCookie.setPath( "/quartz-manager" ); - authCookie.setHttpOnly( true ); - authCookie.setMaxAge( EXPIRES_IN_SEC ); - // Add cookie to response - response.addCookie( authCookie ); - - UserTokenState userTokenState = new UserTokenState(refreshedToken, EXPIRES_IN_SEC); - return ResponseEntity.ok(userTokenState); - } else { - UserTokenState userTokenState = new UserTokenState(); - return ResponseEntity.accepted().body(userTokenState); - } - } - -} diff --git a/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/AuthenticationSuccessHandler.java b/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/AuthenticationSuccessHandler.java index 6634870..aadde13 100644 --- a/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/AuthenticationSuccessHandler.java +++ b/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/AuthenticationSuccessHandler.java @@ -9,27 +9,24 @@ import javax.servlet.http.HttpServletResponse; import org.springframework.security.core.Authentication; import org.springframework.security.web.authentication.SimpleUrlAuthenticationSuccessHandler; -//@Component -//@ConditionalOnProperty(prefix = "quartz-manager.security.login-model", name = "form-login-enabled", havingValue = "true", matchIfMissing = true) public class AuthenticationSuccessHandler extends SimpleUrlAuthenticationSuccessHandler { - private final JwtAuthenticationSuccessHandler jwtAuthenticationSuccessHandler; + private final JwtAuthenticationSuccessHandler jwtAuthenticationSuccessHandler; - // @Autowired - public AuthenticationSuccessHandler(JwtAuthenticationSuccessHandler jwtAuthenticationSuccessHandler) { - super(); - this.jwtAuthenticationSuccessHandler = jwtAuthenticationSuccessHandler; - } + public AuthenticationSuccessHandler(JwtAuthenticationSuccessHandler jwtAuthenticationSuccessHandler) { + super(); + this.jwtAuthenticationSuccessHandler = jwtAuthenticationSuccessHandler; + } - public String cookieMustBeDeletedAtLogout() { - return jwtAuthenticationSuccessHandler.cookieMustBeDeletedAtLogout(); - } + public String cookieMustBeDeletedAtLogout() { + return jwtAuthenticationSuccessHandler.cookieMustBeDeletedAtLogout(); + } - @Override - public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, - Authentication authentication ) throws IOException, ServletException { - clearAuthenticationAttributes(request); - jwtAuthenticationSuccessHandler.onLoginSuccess(authentication, response); - } + @Override + public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, + Authentication authentication ) throws IOException, ServletException { + clearAuthenticationAttributes(request); + jwtAuthenticationSuccessHandler.onLoginSuccess(authentication, response); + } } diff --git a/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/ComboEntryPoint.java b/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/ComboEntryPoint.java deleted file mode 100644 index 7ab933d..0000000 --- a/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/ComboEntryPoint.java +++ /dev/null @@ -1,33 +0,0 @@ -package it.fabioformosa.quartzmanager.security.helpers.impl; - -import java.io.IOException; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.springframework.security.core.AuthenticationException; -import org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint; -import org.springframework.stereotype.Component; - -@Component -public class ComboEntryPoint extends LoginUrlAuthenticationEntryPoint { - - private static final String LOGIN_FORM_URL = "/login"; - - public ComboEntryPoint() { - super(LOGIN_FORM_URL); - } - - @Override - public void commence(HttpServletRequest request, HttpServletResponse response, - AuthenticationException authException) throws IOException, ServletException { - - if (RESTRequestMatcher.isRestRequest(request) - || WebsocketRequestMatcher.isWebsocketConnectionRequest(request)) - response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Unauthorized"); - else - super.commence(request, response, authException); - } - -} diff --git a/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtTokenHelper.java b/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtTokenHelper.java index 679eb57..b796f0b 100644 --- a/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtTokenHelper.java +++ b/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtTokenHelper.java @@ -33,15 +33,12 @@ public class JwtTokenHelper { return Base64.getEncoder().encodeToString(secretKey.getBytes(StandardCharsets.UTF_8)); } - // @Value("${app.name}") private final String appName; - // @Autowired private final JwtSecurityProperties jwtSecurityProps; private SignatureAlgorithm SIGNATURE_ALGORITHM = SignatureAlgorithm.HS512; - // @Autowired public JwtTokenHelper(String appName, JwtSecurityProperties jwtSecurityProps) { super(); this.appName = appName; diff --git a/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/QuartzManagerHttpSecurity.java b/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/QuartzManagerHttpSecurity.java index 55b9edb..7e6ac76 100644 --- a/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/QuartzManagerHttpSecurity.java +++ b/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/QuartzManagerHttpSecurity.java @@ -15,43 +15,42 @@ import it.fabioformosa.quartzmanager.security.helpers.LoginConfigurer; */ public class QuartzManagerHttpSecurity extends SecurityConfigurerAdapter { - public static QuartzManagerHttpSecurity from(HttpSecurity httpSecurity){ - QuartzManagerHttpSecurity newInstance = new QuartzManagerHttpSecurity(httpSecurity); - newInstance.setBuilder(httpSecurity); - return newInstance; - } + public static QuartzManagerHttpSecurity from(HttpSecurity httpSecurity){ + QuartzManagerHttpSecurity newInstance = new QuartzManagerHttpSecurity(httpSecurity); + newInstance.setBuilder(httpSecurity); + return newInstance; + } - private HttpSecurity httpSecurity; + private HttpSecurity httpSecurity; - private LoginConfigurer loginConfigurer; + private LoginConfigurer loginConfigurer; - private LogoutSuccess logoutSuccess; + private LogoutSuccess logoutSuccess; - public QuartzManagerHttpSecurity(HttpSecurity httpSecurity) { - this.httpSecurity = httpSecurity; - // applicationContext = httpSecurity.getSharedObject(ApplicationContext.class); - } + public QuartzManagerHttpSecurity(HttpSecurity httpSecurity) { + this.httpSecurity = httpSecurity; + } - public QuartzManagerHttpSecurity login(String loginPath, AuthenticationManager authenticationManager) throws Exception { - if(loginConfigurer == null || logoutSuccess == null) - throw new IllegalStateException("QuartzManagerHttpSecurity requires to be set loginConfigurer and logoutSuccess!"); - httpSecurity = loginConfigurer.login(loginPath, httpSecurity, authenticationManager); - return this; - } + public QuartzManagerHttpSecurity login(String loginPath, AuthenticationManager authenticationManager) throws Exception { + if(loginConfigurer == null || logoutSuccess == null) + throw new IllegalStateException("QuartzManagerHttpSecurity requires to be set loginConfigurer and logoutSuccess!"); + httpSecurity = loginConfigurer.login(loginPath, httpSecurity, authenticationManager); + return this; + } - public LogoutConfigurer logout(String logoutPath) throws Exception { - LogoutConfigurer logoutConfigurer = httpSecurity.logout().logoutRequestMatcher(new AntPathRequestMatcher(logoutPath)) - .logoutSuccessHandler(logoutSuccess); - String cookie = loginConfigurer.cookieMustBeDeletedAtLogout(); - if(cookie != null) - logoutConfigurer.deleteCookies(cookie); - return logoutConfigurer; - } + public LogoutConfigurer logout(String logoutPath) throws Exception { + LogoutConfigurer logoutConfigurer = httpSecurity.logout().logoutRequestMatcher(new AntPathRequestMatcher(logoutPath)) + .logoutSuccessHandler(logoutSuccess); + String cookie = loginConfigurer.cookieMustBeDeletedAtLogout(); + if(cookie != null) + logoutConfigurer.deleteCookies(cookie); + return logoutConfigurer; + } - public QuartzManagerHttpSecurity withLoginConfigurer(LoginConfigurer loginConfigurer, LogoutSuccess logoutSuccess) { - this.loginConfigurer = loginConfigurer; - this.logoutSuccess = logoutSuccess; - return this; - } + public QuartzManagerHttpSecurity withLoginConfigurer(LoginConfigurer loginConfigurer, LogoutSuccess logoutSuccess) { + this.loginConfigurer = loginConfigurer; + this.logoutSuccess = logoutSuccess; + return this; + } } diff --git a/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/RESTRequestMatcher.java b/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/RESTRequestMatcher.java deleted file mode 100644 index 1fb2d2b..0000000 --- a/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/RESTRequestMatcher.java +++ /dev/null @@ -1,26 +0,0 @@ -package it.fabioformosa.quartzmanager.security.helpers.impl; - -import javax.servlet.http.HttpServletRequest; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.security.web.util.matcher.ELRequestMatcher; -import org.springframework.security.web.util.matcher.RequestMatcher; - -public class RESTRequestMatcher { - - static private final Logger log = LoggerFactory.getLogger(RESTRequestMatcher.class); - - static public RequestMatcher matcherRequestedWith = new ELRequestMatcher( - "hasHeader('X-Requested-With','XMLHttpRequest')"); - static public RequestMatcher matcherAccept = new ELRequestMatcher( - "hasHeader('accept','application/json, text/plain, */*')"); - - static public boolean isRestRequest(HttpServletRequest request) { - log.trace("Detecting if it's an AJAX Request: " + request.getRequestURL() + " accept: " - + request.getHeader("accept") + " " + " X-Requested-With: " - + request.getHeader("X-Requested-With")); - return matcherRequestedWith.matches(request) || matcherAccept.matches(request); - } - -} \ No newline at end of file diff --git a/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/WebsocketRequestMatcher.java b/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/WebsocketRequestMatcher.java deleted file mode 100644 index 5b42424..0000000 --- a/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/WebsocketRequestMatcher.java +++ /dev/null @@ -1,18 +0,0 @@ -package it.fabioformosa.quartzmanager.security.helpers.impl; - -import javax.servlet.http.HttpServletRequest; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class WebsocketRequestMatcher { - - static private final Logger log = LoggerFactory.getLogger(WebsocketRequestMatcher.class); - - static public boolean isWebsocketConnectionRequest(HttpServletRequest request) { - log.trace("Detecting if it's a Websocket Connection Request: " + request.getRequestURL()); - return request.getServletPath().equals("/progress/info") - || request.getServletPath().equals("/logs/info"); - } - -} \ No newline at end of file diff --git a/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/models/Authority.java b/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/models/Authority.java index 32a6284..6638a16 100644 --- a/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/models/Authority.java +++ b/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/models/Authority.java @@ -19,35 +19,37 @@ import com.fasterxml.jackson.annotation.JsonIgnore; //@Table(name="Authority") public class Authority implements GrantedAuthority { - @Id - @Column(name="id") - @GeneratedValue(strategy = GenerationType.IDENTITY) - Long id; + private static final long serialVersionUID = 1L; - @Column(name="name") - String name; + @Id + @Column(name="id") + @GeneratedValue(strategy = GenerationType.IDENTITY) + Long id; - @Override - public String getAuthority() { - return name; - } + @Column(name="name") + String name; - @JsonIgnore - public Long getId() { - return id; - } + @Override + public String getAuthority() { + return name; + } - @JsonIgnore - public String getName() { - return name; - } + @JsonIgnore + public Long getId() { + return id; + } - public void setId(Long id) { - this.id = id; - } + @JsonIgnore + public String getName() { + return name; + } - public void setName(String name) { - this.name = name; - } + public void setId(Long id) { + this.id = id; + } + + public void setName(String name) { + this.name = name; + } } diff --git a/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/models/User.java b/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/models/User.java index ba0d58a..622c311 100644 --- a/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/models/User.java +++ b/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/models/User.java @@ -28,106 +28,105 @@ import com.fasterxml.jackson.annotation.JsonIgnore; //@Entity //@Table(name = "USER") public class User implements UserDetails, Serializable { - @Id - @Column(name = "id") - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; + private static final long serialVersionUID = 1L; - @Column(name = "username") - private String username; + @Id + @Column(name = "id") + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; - @JsonIgnore - @Column(name = "password") - private String password; + @Column(name = "username") + private String username; - @Column(name = "firstname") - private String firstname; + @JsonIgnore + @Column(name = "password") + private String password; - @Column(name = "lastname") - private String lastname; + @Column(name = "firstname") + private String firstname; + @Column(name = "lastname") + private String lastname; - @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER) - @JoinTable(name = "user_authority", - joinColumns = @JoinColumn(name = "user_id", referencedColumnName = "id"), - inverseJoinColumns = @JoinColumn(name = "authority_id", referencedColumnName = "id")) - private List authorities; + @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER) + @JoinTable(name = "user_authority", joinColumns = @JoinColumn(name = "user_id", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "authority_id", referencedColumnName = "id")) + private List authorities; - @Override - public Collection getAuthorities() { - return authorities; - } + @Override + public Collection getAuthorities() { + return authorities; + } - public String getFirstname() { - return firstname; - } + public String getFirstname() { + return firstname; + } - public Long getId() { - return id; - } + public Long getId() { + return id; + } - public String getLastname() { - return lastname; - } + public String getLastname() { + return lastname; + } - @Override - public String getPassword() { - return password; - } + @Override + public String getPassword() { + return password; + } - @Override - public String getUsername() { - return username; - } + @Override + public String getUsername() { + return username; + } - // We can add the below fields in the users table. - // For now, they are hardcoded. - @JsonIgnore - @Override - public boolean isAccountNonExpired() { - return true; - } + // We can add the below fields in the users table. + // For now, they are hardcoded. + @JsonIgnore + @Override + public boolean isAccountNonExpired() { + return true; + } - @JsonIgnore - @Override - public boolean isAccountNonLocked() { - return true; - } + @JsonIgnore + @Override + public boolean isAccountNonLocked() { + return true; + } - @JsonIgnore - @Override - public boolean isCredentialsNonExpired() { - return true; - } + @JsonIgnore + @Override + public boolean isCredentialsNonExpired() { + return true; + } - @JsonIgnore - @Override - public boolean isEnabled() { - return true; - } + @JsonIgnore + @Override + public boolean isEnabled() { + return true; + } - public void setAuthorities(List authorities) { - this.authorities = authorities; - } + public void setAuthorities(List authorities) { + this.authorities = authorities; + } - public void setFirstname(String firstname) { - this.firstname = firstname; - } + public void setFirstname(String firstname) { + this.firstname = firstname; + } - public void setId(Long id) { - this.id = id; - } + public void setId(Long id) { + this.id = id; + } - public void setLastname(String lastname) { + public void setLastname(String lastname) { - this.lastname = lastname; - } + this.lastname = lastname; + } - public void setPassword(String password) { - this.password = password; - } + public void setPassword(String password) { + this.password = password; + } - public void setUsername(String username) { - this.username = username; - } + public void setUsername(String username) { + this.username = username; + } } diff --git a/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/repositories/AuthorityRepository.java b/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/repositories/AuthorityRepository.java deleted file mode 100644 index 5d736c1..0000000 --- a/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/repositories/AuthorityRepository.java +++ /dev/null @@ -1,13 +0,0 @@ -package it.fabioformosa.quartzmanager.security.repositories; - -/** - * Temporary disabled - * - * @author Fabio - * - */ -//public interface AuthorityRepository extends JpaRepository { -// Authority findByName(String name); -//} -public interface AuthorityRepository { -} diff --git a/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/repositories/UserRepository.java b/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/repositories/UserRepository.java deleted file mode 100644 index 6ae1804..0000000 --- a/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/repositories/UserRepository.java +++ /dev/null @@ -1,11 +0,0 @@ -package it.fabioformosa.quartzmanager.security.repositories; - -import it.fabioformosa.quartzmanager.security.models.User; - -public interface UserRepository { - User findByUsername( String username ); -} -//public interface UserRepository extends JpaRepository { -// User findByUsername( String username ); -//} - diff --git a/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/services/AuthorityService.java b/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/services/AuthorityService.java deleted file mode 100644 index 5eca666..0000000 --- a/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/services/AuthorityService.java +++ /dev/null @@ -1,13 +0,0 @@ -package it.fabioformosa.quartzmanager.security.services; - -/** - * temporary disabled - * @author Fabio - * - */ -public interface AuthorityService { - // List findById(Long id); - // - // List findByname(String name); - -} diff --git a/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/services/UserService.java b/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/services/UserService.java deleted file mode 100644 index 5b66879..0000000 --- a/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/services/UserService.java +++ /dev/null @@ -1,18 +0,0 @@ -package it.fabioformosa.quartzmanager.security.services; - -import java.util.List; - -import it.fabioformosa.quartzmanager.security.models.User; -import it.fabioformosa.quartzmanager.security.models.UserRequest; - -public interface UserService { - List findAll(); - - User findById(Long id); - - User findByUsername(String username); - - void resetCredentials(); - - User save(UserRequest user); -} diff --git a/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/services/impl/AuthorityServiceImpl.java b/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/services/impl/AuthorityServiceImpl.java deleted file mode 100644 index 78ebaf4..0000000 --- a/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/services/impl/AuthorityServiceImpl.java +++ /dev/null @@ -1,33 +0,0 @@ -package it.fabioformosa.quartzmanager.security.services.impl; - -import it.fabioformosa.quartzmanager.security.services.AuthorityService; - -/** - * Temporary disabled - * @author Fabio - * - */ - -//@Service -public class AuthorityServiceImpl implements AuthorityService { - - // @Autowired - // private AuthorityRepository authorityRepository; - // - // @Override - // public List findById(Long id) { - // Authority auth = this.authorityRepository.getOne(id); - // List auths = new ArrayList<>(); - // auths.add(auth); - // return auths; - // } - // - // @Override - // public List findByname(String name) { - // Authority auth = this.authorityRepository.findByName(name); - // List auths = new ArrayList<>(); - // auths.add(auth); - // return auths; - // } - -} diff --git a/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/services/impl/CustomUserDetailsService.java b/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/services/impl/CustomUserDetailsService.java deleted file mode 100644 index f4b7adc..0000000 --- a/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/services/impl/CustomUserDetailsService.java +++ /dev/null @@ -1,67 +0,0 @@ -package it.fabioformosa.quartzmanager.security.services.impl; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.authentication.AuthenticationManager; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.core.userdetails.UserDetailsService; -import org.springframework.security.core.userdetails.UsernameNotFoundException; -import org.springframework.security.crypto.password.PasswordEncoder; - -import it.fabioformosa.quartzmanager.security.models.User; -import it.fabioformosa.quartzmanager.security.repositories.UserRepository; - -/** - * Temporary disabled - * @author Fabio - * - */ -//@Service -public class CustomUserDetailsService implements UserDetailsService { - - protected final Log LOGGER = LogFactory.getLog(getClass()); - - @Autowired - private UserRepository userRepository; - - @Autowired - private PasswordEncoder passwordEncoder; - - @Autowired - private AuthenticationManager authenticationManager; - - public void changePassword(String oldPassword, String newPassword) { - - // Authentication currentUser = SecurityContextHolder.getContext().getAuthentication(); - // String username = currentUser.getName(); - // - // if (authenticationManager != null) { - // LOGGER.debug("Re-authenticating user '"+ username + "' for password change request."); - // - // authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(username, oldPassword)); - // } else { - // LOGGER.debug("No authentication manager set. can't change Password!"); - // - // return; - // } - // - // LOGGER.debug("Changing password for user '"+ username + "'"); - // - // User user = (User) loadUserByUsername(username); - // - // user.setPassword(passwordEncoder.encode(newPassword)); - // userRepository.save(user); - - } - - @Override - public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { - User user = userRepository.findByUsername(username); - if (user == null) - throw new UsernameNotFoundException(String.format("No user found with username '%s'.", username)); - else - return user; - } - -} diff --git a/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/services/impl/UserServiceImpl.java b/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/services/impl/UserServiceImpl.java deleted file mode 100644 index 9831e6e..0000000 --- a/quartz-manager-parent/quartz-manager-security/src/main/java/it/fabioformosa/quartzmanager/security/services/impl/UserServiceImpl.java +++ /dev/null @@ -1,79 +0,0 @@ -package it.fabioformosa.quartzmanager.security.services.impl; - -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.AccessDeniedException; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.security.core.userdetails.UsernameNotFoundException; -import org.springframework.security.crypto.password.PasswordEncoder; - -import it.fabioformosa.quartzmanager.security.models.User; -import it.fabioformosa.quartzmanager.security.models.UserRequest; -import it.fabioformosa.quartzmanager.security.repositories.UserRepository; -import it.fabioformosa.quartzmanager.security.services.AuthorityService; -import it.fabioformosa.quartzmanager.security.services.UserService; - -/** - * Temporary disabled - * @author Fabio - * - */ -//@Service -public class UserServiceImpl implements UserService { - - @Autowired - private UserRepository userRepository; - - @Autowired - private PasswordEncoder passwordEncoder; - - @Autowired - private AuthorityService authService; - - @Override - @PreAuthorize("hasRole('ADMIN')") - public List findAll() throws AccessDeniedException { - // List result = userRepository.findAll(); - // return result; - return null; - } - - @Override - @PreAuthorize("hasRole('ADMIN')") - public User findById(Long id) throws AccessDeniedException { - // User u = userRepository.getOne(id); - // return u; - return null; - } - - @Override - // @PreAuthorize("hasRole('USER')") - public User findByUsername(String username) throws UsernameNotFoundException { - User u = userRepository.findByUsername(username); - return u; - } - - @Override - public void resetCredentials() { - // List users = userRepository.findAll(); - // for (User user : users) { - // user.setPassword(passwordEncoder.encode("123")); - // userRepository.save(user); - // } - } - - @Override - public User save(UserRequest userRequest) { - User user = new User(); - // user.setUsername(userRequest.getUsername()); - // user.setPassword(passwordEncoder.encode(userRequest.getPassword())); - // user.setFirstname(userRequest.getFirstname()); - // user.setLastname(userRequest.getLastname()); - // List auth = authService.findByname("ROLE_USER"); - // user.setAuthorities(auth); - // this.userRepository.save(user); - return user; - } - -} diff --git a/quartz-manager-parent/quartz-manager-ui-webjar/pom.xml b/quartz-manager-parent/quartz-manager-ui-webjar/pom.xml index 68aeee1..47d25bc 100644 --- a/quartz-manager-parent/quartz-manager-ui-webjar/pom.xml +++ b/quartz-manager-parent/quartz-manager-ui-webjar/pom.xml @@ -4,7 +4,7 @@ it.fabioformosa.quartz-manager quartz-manager-parent - 2.2.2-SNAPSHOT + 3.0.0-SNAPSHOT quartz-manager-ui-webjar diff --git a/quartz-manager-parent/quartz-manager-web-showcase/pom.xml b/quartz-manager-parent/quartz-manager-web-showcase/pom.xml index 654e9e4..7b59614 100644 --- a/quartz-manager-parent/quartz-manager-web-showcase/pom.xml +++ b/quartz-manager-parent/quartz-manager-web-showcase/pom.xml @@ -6,7 +6,7 @@ it.fabioformosa.quartz-manager quartz-manager-parent - 2.2.2-SNAPSHOT + 3.0.0-SNAPSHOT quartz-manager-web-showcase diff --git a/quartz-manager-parent/quartz-manager-web-showcase/src/main/resources/_disabled_import.sql_off b/quartz-manager-parent/quartz-manager-web-showcase/src/main/resources/_disabled_import.sql_off deleted file mode 100644 index ea29080..0000000 --- a/quartz-manager-parent/quartz-manager-web-showcase/src/main/resources/_disabled_import.sql_off +++ /dev/null @@ -1,11 +0,0 @@ - --- the password hash is generated by BCrypt Calculator Generator(https://www.dailycred.com/article/bcrypt-calculator) -INSERT INTO user (id, username, password, firstname, lastname) VALUES (1, 'user', '{bcrypt}$2a$04$Vbug2lwwJGrvUXTj6z7ff.97IzVBkrJ1XfApfGNl.Z695zqcnPYra', 'John', 'Doe'); -INSERT INTO user (id, username, password, firstname, lastname) VALUES (2, 'admin', '{bcrypt}$2a$04$Vbug2lwwJGrvUXTj6z7ff.97IzVBkrJ1XfApfGNl.Z695zqcnPYra', 'Admin', 'Admin'); - -INSERT INTO authority (id, name) VALUES (1, 'ROLE_USER'); -INSERT INTO authority (id, name) VALUES (2, 'ROLE_ADMIN'); - -INSERT INTO user_authority (user_id, authority_id) VALUES (1, 1); -INSERT INTO user_authority (user_id, authority_id) VALUES (2, 1); -INSERT INTO user_authority (user_id, authority_id) VALUES (2, 2);