Add plugin for maven spring boot run. Add health check for properties
This commit is contained in:
parent
68d509eab9
commit
58d40a97f9
14
pom.xml
14
pom.xml
|
@ -82,6 +82,20 @@
|
|||
</resource>
|
||||
</resources>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
<configuration>
|
||||
<mainClass>eu.dnetlib.loginservice.LoginServiceApplication</mainClass>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>repackage</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-war-plugin</artifactId>
|
||||
<version>2.6</version>
|
||||
|
|
|
@ -1,17 +1,45 @@
|
|||
package eu.dnetlib.loginservice.controllers;
|
||||
|
||||
import eu.dnetlib.loginservice.properties.Properties;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@RestController
|
||||
public class HealthController {
|
||||
private final Logger log = Logger.getLogger(this.getClass());
|
||||
private final Properties properties;
|
||||
|
||||
@Autowired
|
||||
public HealthController(Properties properties) {
|
||||
this.properties = properties;
|
||||
}
|
||||
|
||||
@RequestMapping(value = {"", "/health_check"}, method = RequestMethod.GET)
|
||||
public String hello() {
|
||||
log.debug("Hello from Login service!");
|
||||
return "Hello from Login service!";
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAnyAuthority('PORTAL_ADMINISTRATOR')")
|
||||
@RequestMapping(value = "/health_check/advanced", method = RequestMethod.GET)
|
||||
public Map<String, String> checkEverything() {
|
||||
Map<String, String> response = new HashMap<>();
|
||||
response.put("authentication.domain", properties.getDomain());
|
||||
response.put("authentication.redis.host", properties.getRedis().getHost());
|
||||
response.put("authentication.oidc.id", properties.getOidc().getId());
|
||||
response.put("authentication.oidc.secret", properties.getOidc().getSecret());
|
||||
response.put("authentication.oidc.issuer", properties.getOidc().getIssuer());
|
||||
response.put("authentication.oidc.home", properties.getOidc().getHome());
|
||||
response.put("authentication.oidc.logout", properties.getOidc().getLogout());
|
||||
response.put("authentication.oidc.scope", properties.getOidc().getScope());
|
||||
response.put("authentication.redirect", properties.getRedirect());
|
||||
return response;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,22 +1,25 @@
|
|||
package eu.dnetlib.loginservice.controllers;
|
||||
|
||||
import eu.dnetlib.loginservice.entities.User;
|
||||
import eu.dnetlib.loginservice.exception.ResourceNotFoundException;
|
||||
import org.mitre.openid.connect.model.OIDCAuthenticationToken;
|
||||
import eu.dnetlib.loginservice.services.UserInfoService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@RestController
|
||||
public class UserController {
|
||||
|
||||
private final UserInfoService userInfoService;
|
||||
|
||||
@Autowired
|
||||
public UserController(UserInfoService userInfoService) {
|
||||
this.userInfoService = userInfoService;
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/userInfo", method = RequestMethod.GET)
|
||||
public ResponseEntity<User> getUserInfo(Authentication authentication) {
|
||||
if(authentication instanceof OIDCAuthenticationToken) {
|
||||
return ResponseEntity.ok(new User((OIDCAuthenticationToken) authentication));
|
||||
}
|
||||
throw new ResourceNotFoundException("No Session has been found");
|
||||
public ResponseEntity<User> getUserInfo() {
|
||||
return ResponseEntity.ok(userInfoService.getUserInfo());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,7 +4,6 @@ import eu.dnetlib.loginservice.properties.Properties;
|
|||
import eu.dnetlib.loginservice.security.oidc.OpenAIREAuthoritiesMapper;
|
||||
import eu.dnetlib.loginservice.utils.EntryPoint;
|
||||
import eu.dnetlib.loginservice.utils.ScopeReader;
|
||||
import org.mitre.openid.connect.client.OIDCAuthenticationFilter;
|
||||
import org.mitre.openid.connect.client.OIDCAuthenticationProvider;
|
||||
import org.mitre.openid.connect.client.service.impl.PlainAuthRequestUrlBuilder;
|
||||
import org.mitre.openid.connect.client.service.impl.StaticAuthRequestOptionsService;
|
||||
|
@ -13,7 +12,6 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.security.web.access.expression.DefaultWebSecurityExpressionHandler;
|
||||
import org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint;
|
||||
|
||||
@Configuration
|
||||
public class Primitives {
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package eu.dnetlib.loginservice.security.initiliazers;
|
||||
|
||||
import eu.dnetlib.loginservice.properties.Properties;
|
||||
import eu.dnetlib.loginservice.utils.ScopeReader;
|
||||
import org.mitre.oauth2.model.RegisteredClient;
|
||||
import org.mitre.openid.connect.client.service.impl.StaticClientConfigurationService;
|
||||
import org.mitre.openid.connect.client.service.impl.StaticServerConfigurationService;
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
package eu.dnetlib.loginservice.services;
|
||||
|
||||
import eu.dnetlib.loginservice.entities.User;
|
||||
import eu.dnetlib.loginservice.exception.ResourceNotFoundException;
|
||||
import org.mitre.openid.connect.model.OIDCAuthenticationToken;
|
||||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.security.core.context.SecurityContextHolder;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class UserInfoService {
|
||||
|
||||
public User getUserInfo() throws ResourceNotFoundException {
|
||||
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
|
||||
if(authentication instanceof OIDCAuthenticationToken) {
|
||||
return new User((OIDCAuthenticationToken) authentication);
|
||||
}
|
||||
throw new ResourceNotFoundException("No Session has been found");
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue