TSK-987: Fix Spotbugs - inner class could be made static

This commit is contained in:
Benjamin Eckstein 2020-01-23 14:49:02 +01:00
parent 2112dcd79e
commit 3e9ea4d1d9
8 changed files with 124 additions and 94 deletions

View File

@ -83,7 +83,7 @@ public class TaskHistoryEventControllerIntTest {
server + port + "/api/v1/task-history-event", server + port + "/api/v1/task-history-event",
HttpMethod.GET, HttpMethod.GET,
request, request,
new ParameterizedTypeReference<TaskHistoryEventListResource>() {}); ParameterizedTypeReference.forType(TaskHistoryEventListResource.class));
assertNotNull(response.getBody().getLink(Link.REL_SELF)); assertNotNull(response.getBody().getLink(Link.REL_SELF));
assertEquals(50, response.getBody().getContent().size()); assertEquals(50, response.getBody().getContent().size());
} }
@ -97,7 +97,7 @@ public class TaskHistoryEventControllerIntTest {
server + port + parameters, server + port + parameters,
HttpMethod.GET, HttpMethod.GET,
request, request,
new ParameterizedTypeReference<TaskHistoryEventListResource>() {}); ParameterizedTypeReference.forType(TaskHistoryEventListResource.class));
assertNotNull(response.getBody().getLink(Link.REL_SELF)); assertNotNull(response.getBody().getLink(Link.REL_SELF));
assertEquals(3, response.getBody().getContent().size()); assertEquals(3, response.getBody().getContent().size());
assertTrue(response.getBody().getLink(Link.REL_SELF).getHref().endsWith(parameters)); assertTrue(response.getBody().getLink(Link.REL_SELF).getHref().endsWith(parameters));
@ -113,7 +113,7 @@ public class TaskHistoryEventControllerIntTest {
+ "&sort-by=business-process-id&order=asc&page-size=6&page=1", + "&sort-by=business-process-id&order=asc&page-size=6&page=1",
HttpMethod.GET, HttpMethod.GET,
request, request,
new ParameterizedTypeReference<TaskHistoryEventListResource>() {}); ParameterizedTypeReference.forType(TaskHistoryEventListResource.class));
assertNotNull(response.getBody().getLink(Link.REL_SELF)); assertNotNull(response.getBody().getLink(Link.REL_SELF));
assertNotNull(response.getBody().getLinks()); assertNotNull(response.getBody().getLinks());
@ -128,7 +128,7 @@ public class TaskHistoryEventControllerIntTest {
server + port + "/api/v1/task-history-event?invalid=BPI:01", server + port + "/api/v1/task-history-event?invalid=BPI:01",
HttpMethod.GET, HttpMethod.GET,
request, request,
new ParameterizedTypeReference<TaskHistoryEventListResource>() {}); ParameterizedTypeReference.forType(TaskHistoryEventListResource.class));
fail(); fail();
} catch (HttpClientErrorException e) { } catch (HttpClientErrorException e) {
assertEquals(HttpStatus.BAD_REQUEST, e.getStatusCode()); assertEquals(HttpStatus.BAD_REQUEST, e.getStatusCode());
@ -145,7 +145,7 @@ public class TaskHistoryEventControllerIntTest {
server + port + "/api/v1/task-history-event?created=" + currentTime, server + port + "/api/v1/task-history-event?created=" + currentTime,
HttpMethod.GET, HttpMethod.GET,
request, request,
new ParameterizedTypeReference<TaskHistoryEventListResource>() {}); ParameterizedTypeReference.forType(TaskHistoryEventListResource.class));
fail(); fail();
} catch (HttpClientErrorException e) { } catch (HttpClientErrorException e) {
assertEquals(HttpStatus.BAD_REQUEST, e.getStatusCode()); assertEquals(HttpStatus.BAD_REQUEST, e.getStatusCode());
@ -159,7 +159,7 @@ public class TaskHistoryEventControllerIntTest {
server + port + "/api/v1/task-history-event?created=" + currentTime, server + port + "/api/v1/task-history-event?created=" + currentTime,
HttpMethod.GET, HttpMethod.GET,
request, request,
new ParameterizedTypeReference<TaskHistoryEventListResource>() {}); ParameterizedTypeReference.forType(TaskHistoryEventListResource.class));
assertNotNull(response.getBody().getLink(Link.REL_SELF)); assertNotNull(response.getBody().getLink(Link.REL_SELF));
assertEquals(25, response.getBody().getContent().size()); assertEquals(25, response.getBody().getContent().size());
} }
@ -173,7 +173,7 @@ public class TaskHistoryEventControllerIntTest {
server + port + parameters, server + port + parameters,
HttpMethod.GET, HttpMethod.GET,
request, request,
new ParameterizedTypeReference<TaskHistoryEventListResource>() {}); ParameterizedTypeReference.forType(TaskHistoryEventListResource.class));
assertEquals(2, response.getBody().getContent().size()); assertEquals(2, response.getBody().getContent().size());
assertEquals( assertEquals(

View File

@ -11,7 +11,7 @@ import pro.taskana.exceptions.NotAuthorizedException;
import pro.taskana.impl.report.row.SingleRow; import pro.taskana.impl.report.row.SingleRow;
/** /**
* A Report represents a an abstract table that consists of {@link Row}s and a list of * A Report represents an abstract table that consists of {@link Row}s and a list of
* &lt;ColumnHeader&gt;s. Since a report does not specify &lt;Item&gt; and &lt;ColumnHeader&gt; it * &lt;ColumnHeader&gt;s. Since a report does not specify &lt;Item&gt; and &lt;ColumnHeader&gt; it
* does not contain functional logic. Due to readability implicit definition of functional logic is * does not contain functional logic. Due to readability implicit definition of functional logic is
* prevented and thus prevent initialization of an abstract Report. In order to create a specific * prevented and thus prevent initialization of an abstract Report. In order to create a specific

View File

@ -26,8 +26,7 @@ class ReportTest {
@BeforeEach @BeforeEach
void before() { void before() {
this.report = this.report =
new Report<MonitorQueryItem, TimeIntervalColumnHeader>( new MonitorQueryItemTimeIntervalColumnHeaderReport(HEADERS, new String[] {"rowDesc"});
HEADERS, new String[] {"rowDesc"}) {};
item = new MonitorQueryItem(); item = new MonitorQueryItem();
item.setKey("key"); item.setKey("key");
@ -109,9 +108,9 @@ class ReportTest {
@Test @Test
void testInsertItemWithNoColumnHeaders() { void testInsertItemWithNoColumnHeaders() {
// given // given
List<TimeIntervalColumnHeader> headerList = Collections.emptyList();
report = report =
new Report<MonitorQueryItem, TimeIntervalColumnHeader>( new MonitorQueryItemTimeIntervalColumnHeaderReport(headerList, new String[] {"rowDesc"});
Collections.emptyList(), new String[] {"rowDesc"}) {};
// when // when
report.addItem(item); report.addItem(item);
@ -141,9 +140,7 @@ class ReportTest {
// given // given
List<TimeIntervalColumnHeader> headers = new ArrayList<>(HEADERS); List<TimeIntervalColumnHeader> headers = new ArrayList<>(HEADERS);
headers.add(new TimeIntervalColumnHeader(0, 3)); headers.add(new TimeIntervalColumnHeader(0, 3));
report = report = new MonitorQueryItemTimeIntervalColumnHeaderReport(headers, new String[] {"rowDesc"});
new Report<MonitorQueryItem, TimeIntervalColumnHeader>(
headers, new String[] {"rowDesc"}) {};
item.setAgeInDays(2); item.setAgeInDays(2);
@ -187,4 +184,13 @@ class ReportTest {
assertArrayEquals(new int[] {0, overrideValue, 0, 0}, sumRow.getCells()); assertArrayEquals(new int[] {0, overrideValue, 0, 0}, sumRow.getCells());
assertEquals(overrideValue, sumRow.getTotalValue()); assertEquals(overrideValue, sumRow.getTotalValue());
} }
private static class MonitorQueryItemTimeIntervalColumnHeaderReport
extends Report<MonitorQueryItem, TimeIntervalColumnHeader> {
public MonitorQueryItemTimeIntervalColumnHeaderReport(
List<TimeIntervalColumnHeader> headerList, String[] rowDesc) {
super(headerList, rowDesc);
}
}
} }

View File

@ -45,13 +45,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Bean @Bean
public WebMvcConfigurer corsConfigurer() { public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() { return new CorsWebMvcConfigurer();
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("*");
}
};
} }
@Bean @Bean
@ -119,4 +113,12 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
.deleteCookies("JSESSIONID") .deleteCookies("JSESSIONID")
.permitAll(); .permitAll();
} }
private static class CorsWebMvcConfigurer implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("*");
}
}
} }

View File

@ -51,11 +51,11 @@ class AccessIdValidationControllerIntTest {
restHelper.toUrl(Mapping.URL_ACCESSID) + "?search-for=ali", restHelper.toUrl(Mapping.URL_ACCESSID) + "?search-for=ali",
HttpMethod.GET, HttpMethod.GET,
request, request,
new ParameterizedTypeReference<List<AccessIdResource>>() {}); ParameterizedTypeReference.forType(AccessIdListResource.class));
List<AccessIdResource> body = response.getBody(); List<AccessIdResource> body = response.getBody();
assertNotNull(body); assertNotNull(body);
assertTrue(3 == body.size()); assertEquals(3, body.size());
List<String> expectedIds = List<String> expectedIds =
new ArrayList<>(Arrays.asList("Tralisch, Thea", "Bert, Ali", "Mente, Ali")); new ArrayList<>(Arrays.asList("Tralisch, Thea", "Bert, Ali", "Mente, Ali"));
for (AccessIdResource accessId : body) { for (AccessIdResource accessId : body) {
@ -78,4 +78,9 @@ class AccessIdValidationControllerIntTest {
assertTrue(e.getResponseBodyAsString().contains("Minimum searchFor length =")); assertTrue(e.getResponseBodyAsString().contains("Minimum searchFor length ="));
} }
} }
static class AccessIdListResource extends ArrayList<AccessIdResource> {
private static final long serialVersionUID = 1L;
}
} }

View File

@ -71,66 +71,7 @@ public class WildflyWebSecurityConfig extends WebSecurityConfig {
@Bean @Bean
public AuthenticationUserDetailsService<PreAuthenticatedAuthenticationToken> public AuthenticationUserDetailsService<PreAuthenticatedAuthenticationToken>
authenticationUserDetailsService() { authenticationUserDetailsService() {
return new AuthenticationUserDetailsService<PreAuthenticatedAuthenticationToken>() { return new PreAuthenticatedAuthenticationTokenAuthenticationUserDetailsService();
@Override
public UserDetails loadUserDetails(PreAuthenticatedAuthenticationToken token)
throws UsernameNotFoundException {
return new UserDetails() {
private static final long serialVersionUID = 1L;
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
List<GrantedAuthority> authorities = new ArrayList<>();
SecurityIdentity securityIdentity = getSecurityIdentity();
if (securityIdentity != null) {
Roles roles = securityIdentity.getRoles();
roles.forEach(role -> authorities.add(new SimpleGrantedAuthority(role)));
}
return authorities;
}
@Override
public String getPassword() {
return (String) token.getCredentials();
}
@Override
public String getUsername() {
return token.getName();
}
@Override
public boolean isAccountNonExpired() {
return true;
}
@Override
public boolean isAccountNonLocked() {
return true;
}
@Override
public boolean isCredentialsNonExpired() {
return true;
}
@Override
public boolean isEnabled() {
return true;
}
private SecurityIdentity getSecurityIdentity() {
SecurityDomain current = SecurityDomain.getCurrent();
if (current != null) {
return current.getCurrentSecurityIdentity();
}
return null;
}
};
}
};
} }
@Override @Override
@ -190,4 +131,73 @@ public class WildflyWebSecurityConfig extends WebSecurityConfig {
.deleteCookies("JSESSIONID") .deleteCookies("JSESSIONID")
.permitAll(); .permitAll();
} }
private static class PreAuthenticatedAuthenticationTokenAuthenticationUserDetailsService
implements AuthenticationUserDetailsService<PreAuthenticatedAuthenticationToken> {
@Override
public UserDetails loadUserDetails(PreAuthenticatedAuthenticationToken token)
throws UsernameNotFoundException {
return new MyUserDetails(token);
}
private static class MyUserDetails implements UserDetails {
private static final long serialVersionUID = 1L;
private final PreAuthenticatedAuthenticationToken token;
public MyUserDetails(PreAuthenticatedAuthenticationToken token) {
this.token = token;
}
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
List<GrantedAuthority> authorities = new ArrayList<>();
SecurityIdentity securityIdentity = getSecurityIdentity();
if (securityIdentity != null) {
Roles roles = securityIdentity.getRoles();
roles.forEach(role -> authorities.add(new SimpleGrantedAuthority(role)));
}
return authorities;
}
@Override
public String getPassword() {
return (String) token.getCredentials();
}
@Override
public String getUsername() {
return token.getName();
}
@Override
public boolean isAccountNonExpired() {
return true;
}
@Override
public boolean isAccountNonLocked() {
return true;
}
@Override
public boolean isCredentialsNonExpired() {
return true;
}
@Override
public boolean isEnabled() {
return true;
}
private SecurityIdentity getSecurityIdentity() {
SecurityDomain current = SecurityDomain.getCurrent();
if (current != null) {
return current.getCurrentSecurityIdentity();
}
return null;
}
}
}
} }

View File

@ -72,7 +72,7 @@ class WorkbasketDefinitionControllerIntTest {
restHelper.toUrl(Mapping.URL_WORKBASKETDEFIITIONS) + "?domain=DOMAIN_A", restHelper.toUrl(Mapping.URL_WORKBASKETDEFIITIONS) + "?domain=DOMAIN_A",
HttpMethod.GET, HttpMethod.GET,
restHelper.defaultRequest(), restHelper.defaultRequest(),
new ParameterizedTypeReference<List<WorkbasketDefinitionResource>>() {}); ParameterizedTypeReference.forType(WorkbasketDefinitionListResource.class));
assertNotNull(response.getBody()); assertNotNull(response.getBody());
assertEquals(HttpStatus.OK, response.getStatusCode()); assertEquals(HttpStatus.OK, response.getStatusCode());
@ -130,7 +130,7 @@ class WorkbasketDefinitionControllerIntTest {
restHelper.toUrl(Mapping.URL_WORKBASKETDEFIITIONS) + "?domain=DOMAIN_A", restHelper.toUrl(Mapping.URL_WORKBASKETDEFIITIONS) + "?domain=DOMAIN_A",
HttpMethod.GET, HttpMethod.GET,
restHelper.defaultRequest(), restHelper.defaultRequest(),
new ParameterizedTypeReference<List<WorkbasketDefinitionResource>>() {}); ParameterizedTypeReference.forType(WorkbasketDefinitionListResource.class));
List<String> list = new ArrayList<>(); List<String> list = new ArrayList<>();
ObjectMapper objMapper = new ObjectMapper(); ObjectMapper objMapper = new ObjectMapper();
@ -151,7 +151,7 @@ class WorkbasketDefinitionControllerIntTest {
restHelper.toUrl(Mapping.URL_WORKBASKETDEFIITIONS) + "?domain=DOMAIN_A", restHelper.toUrl(Mapping.URL_WORKBASKETDEFIITIONS) + "?domain=DOMAIN_A",
HttpMethod.GET, HttpMethod.GET,
restHelper.defaultRequest(), restHelper.defaultRequest(),
new ParameterizedTypeReference<List<WorkbasketDefinitionResource>>() {}); ParameterizedTypeReference.forType(WorkbasketDefinitionListResource.class));
List<String> list = new ArrayList<>(); List<String> list = new ArrayList<>();
ObjectMapper objMapper = new ObjectMapper(); ObjectMapper objMapper = new ObjectMapper();
@ -201,4 +201,9 @@ class WorkbasketDefinitionControllerIntTest {
return template.postForEntity(serverUrl, requestEntity, Void.class); return template.postForEntity(serverUrl, requestEntity, Void.class);
} }
static class WorkbasketDefinitionListResource extends ArrayList<WorkbasketDefinitionResource> {
private static final long serialVersionUID = 1L;
}
} }

View File

@ -41,13 +41,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Bean @Bean
public WebMvcConfigurer corsConfigurer() { public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() { return new CorsWebMvcConfigurer();
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("*");
}
};
} }
@Bean @Bean
@ -82,4 +76,12 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
.anyRequest() .anyRequest()
.fullyAuthenticated(); .fullyAuthenticated();
} }
private static class CorsWebMvcConfigurer implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("*");
}
}
} }