Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -217,8 +217,6 @@ public void renderHead(final IHeaderResponse response) {

protected abstract void sendError(String error);

protected abstract String getAnonymousUser();

protected abstract void authenticate(
String username,
String password,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
import java.util.Locale;
import java.util.concurrent.Callable;
import java.util.concurrent.Future;
import org.apache.syncope.client.lib.SyncopeClient;
import org.apache.syncope.client.lib.SyncopeAnonymousClient;

public interface BaseSession {

Expand Down Expand Up @@ -55,7 +55,7 @@ public String fallback() {

String getJWT();

SyncopeClient getAnonymousClient();
SyncopeAnonymousClient getAnonymousClient();

<T> T getAnonymousService(Class<T> serviceClass);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,6 @@ public void setQueueCapacity(final int queueCapacity) {
}
}

private String adminUser = "admin";

private final Map<String, Class<? extends BasePage>> page = new HashMap<>();

private String defaultAnyPanelClass = AnyPanel.class.getName();
Expand All @@ -76,16 +74,6 @@ public void setQueueCapacity(final int queueCapacity) {

private final Topology topology = new Topology();

@Override
public String getAdminUser() {
return adminUser;
}

@Override
public void setAdminUser(final String adminUser) {
this.adminUser = adminUser;
}

public Map<String, Class<? extends BasePage>> getPage() {
return page;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@

import org.apache.syncope.common.lib.types.IdRepoEntitlement;
import org.springframework.boot.actuate.autoconfigure.security.servlet.EndpointRequest;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.Customizer;
Expand All @@ -37,8 +38,9 @@
@Configuration(proxyBeanMethods = false)
public class SecurityConfig {

@ConditionalOnMissingBean
@Bean
public SecurityFilterChain filterChain(final HttpSecurity http) throws Exception {
public SecurityFilterChain actuatorFilterChain(final HttpSecurity http) throws Exception {
EndpointRequest.EndpointRequestMatcher actuatorEndpoints = EndpointRequest.toAnyEndpoint();
http.authorizeHttpRequests(customizer -> customizer.
requestMatchers(new NegatedRequestMatcher(actuatorEndpoints)).permitAll().
Expand All @@ -50,8 +52,9 @@ public SecurityFilterChain filterChain(final HttpSecurity http) throws Exception
return http.build();
}

@ConditionalOnMissingBean
@Bean
public UserDetailsService userDetailsService(final ConsoleProperties props) {
public UserDetailsService actuatorUserDetailsService(final ConsoleProperties props) {
UserDetails user = User.withUsername(props.getAnonymousUser()).
password("{noop}" + props.getAnonymousKey()).
roles(IdRepoEntitlement.ANONYMOUS).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
import org.apache.commons.lang3.tuple.Triple;
import org.apache.cxf.jaxrs.client.WebClient;
import org.apache.syncope.client.console.commons.RealmsUtils;
import org.apache.syncope.client.lib.SyncopeAnonymousClient;
import org.apache.syncope.client.lib.SyncopeClient;
import org.apache.syncope.client.lib.SyncopeClientFactoryBean;
import org.apache.syncope.client.lib.batch.BatchRequest;
Expand Down Expand Up @@ -96,7 +97,7 @@ public String fallback() {

protected final SyncopeClientFactoryBean clientFactory;

protected final SyncopeClient anonymousClient;
protected final SyncopeAnonymousClient anonymousClient;

protected final Pair<String, String> gitAndBuildInfo;

Expand Down Expand Up @@ -382,7 +383,7 @@ public void refreshAuth(final String username) {
}

@Override
public SyncopeClient getAnonymousClient() {
public SyncopeAnonymousClient getAnonymousClient() {
return anonymousClient;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,7 @@
import org.apache.syncope.client.console.pages.MustChangePassword;
import org.apache.syncope.client.console.rest.RealmRestClient;
import org.apache.syncope.client.console.wizards.any.UserFormFinalizer;
import org.apache.syncope.client.lib.AnonymousAuthenticationHandler;
import org.apache.syncope.client.lib.SyncopeClient;
import org.apache.syncope.client.lib.SyncopeAnonymousClient;
import org.apache.syncope.client.lib.SyncopeClientFactoryBean;
import org.apache.syncope.client.ui.commons.Constants;
import org.apache.syncope.client.ui.commons.SyncopeUIRequestCycleListener;
Expand Down Expand Up @@ -271,9 +270,8 @@ public ThreadPoolTaskExecutor newThreadPoolTaskExecutor() {
return executor;
}

public SyncopeClient newAnonymousClient() {
return newClientFactory().create(
new AnonymousAuthenticationHandler(props.getAnonymousUser(), props.getAnonymousKey()));
public SyncopeAnonymousClient newAnonymousClient() {
return newClientFactory().createAnonymous(props.getAnonymousUser(), props.getAnonymousKey());
}

public SyncopeClientFactoryBean newClientFactory() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,11 +64,6 @@ protected void sendError(final String error) {
SyncopeConsoleSession.get().error(error);
}

@Override
protected String getAnonymousUser() {
return SyncopeWebApplication.get().getAnonymousUser();
}

@Override
protected void authenticate(final String username, final String password, final AjaxRequestTarget target)
throws NotAuthorizedException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.isNull;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

Expand Down Expand Up @@ -56,6 +57,7 @@
import org.apache.syncope.client.console.commons.VirSchemaDetailsPanelProvider;
import org.apache.syncope.client.console.init.ClassPathScanImplementationLookup;
import org.apache.syncope.client.lib.AuthenticationHandler;
import org.apache.syncope.client.lib.SyncopeAnonymousClient;
import org.apache.syncope.client.lib.SyncopeClient;
import org.apache.syncope.client.lib.SyncopeClientFactoryBean;
import org.apache.syncope.client.ui.commons.MIMETypesLoader;
Expand Down Expand Up @@ -292,12 +294,13 @@ private UserTO getUserTO() {
@Override
public SyncopeClientFactoryBean newClientFactory() {
SyncopeClient client = mock(SyncopeClient.class);
SyncopeAnonymousClient anonymousClient = mock(SyncopeAnonymousClient.class);

when(client.self()).thenReturn(Triple.of(new HashMap<>(), List.of(), getUserTO()));

when(client.gitAndBuildInfo()).thenReturn(Pair.of("", ""));
when(client.platform()).thenReturn(new PlatformInfo());
when(client.numbers()).thenAnswer(ic -> {
when(anonymousClient.gitAndBuildInfo()).thenReturn(Pair.of("", ""));
when(anonymousClient.platform()).thenReturn(new PlatformInfo());
when(anonymousClient.numbers()).thenAnswer(ic -> {
NumbersInfo numbersInfo = new NumbersInfo();

numbersInfo.getConfCompleteness().put(
Expand All @@ -321,7 +324,7 @@ public SyncopeClientFactoryBean newClientFactory() {

return numbersInfo;
});
when(client.system()).thenReturn(new SystemInfo());
when(anonymousClient.system()).thenReturn(new SystemInfo());

SyncopeService syncopeService = getSyncopeService();
when(client.getService(SyncopeService.class)).thenReturn(syncopeService);
Expand All @@ -339,6 +342,7 @@ public SyncopeClientFactoryBean newClientFactory() {
when(clientFactory.setDomain(any())).thenReturn(clientFactory);
when(clientFactory.create(any(AuthenticationHandler.class))).thenReturn(client);
when(clientFactory.create(anyString(), anyString())).thenReturn(client);
when(clientFactory.createAnonymous(anyString(), isNull())).thenReturn(anonymousClient);

return clientFactory;
}
Expand Down
2 changes: 1 addition & 1 deletion client/idrepo/console/src/test/resources/log4j2.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ under the License.

<loggers>

<asyncLogger name="org.apache.syncope.client.lib" additivity="false" level="OFF">
<asyncLogger name="org.apache.syncope.client.lib" additivity="false" level="ERROR">
<appender-ref ref="console"/>
</asyncLogger>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@

import org.apache.syncope.common.lib.types.IdRepoEntitlement;
import org.springframework.boot.actuate.autoconfigure.security.servlet.EndpointRequest;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.Customizer;
Expand All @@ -37,8 +38,9 @@
@Configuration(proxyBeanMethods = false)
public class SecurityConfig {

@ConditionalOnMissingBean
@Bean
public SecurityFilterChain filterChain(final HttpSecurity http) throws Exception {
public SecurityFilterChain actuatorFilterChain(final HttpSecurity http) throws Exception {
EndpointRequest.EndpointRequestMatcher actuatorEndpoints = EndpointRequest.toAnyEndpoint();
http.authorizeHttpRequests(customizer -> customizer.
requestMatchers(new NegatedRequestMatcher(actuatorEndpoints)).permitAll().
Expand All @@ -50,8 +52,9 @@ public SecurityFilterChain filterChain(final HttpSecurity http) throws Exception
return http.build();
}

@ConditionalOnMissingBean
@Bean
public UserDetailsService userDetailsService(final EnduserProperties props) {
public UserDetailsService actuatorUserDetailsService(final EnduserProperties props) {
UserDetails user = User.withUsername(props.getAnonymousUser()).
password("{noop}" + props.getAnonymousKey()).
roles(IdRepoEntitlement.ANONYMOUS).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.apache.commons.lang3.time.FastDateFormat;
import org.apache.cxf.jaxrs.client.WebClient;
import org.apache.syncope.client.lib.SyncopeAnonymousClient;
import org.apache.syncope.client.lib.SyncopeClient;
import org.apache.syncope.client.lib.SyncopeClientFactoryBean;
import org.apache.syncope.client.ui.commons.BaseSession;
Expand Down Expand Up @@ -87,7 +88,7 @@ public String fallback() {

private final SyncopeClientFactoryBean clientFactory;

private final SyncopeClient anonymousClient;
private final SyncopeAnonymousClient anonymousClient;

private final PlatformInfo platformInfo;

Expand Down Expand Up @@ -296,7 +297,7 @@ public UserTO getSelfTO(final boolean reload) {
}

@Override
public SyncopeClient getAnonymousClient() {
public SyncopeAnonymousClient getAnonymousClient() {
return anonymousClient;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,7 @@
import org.apache.syncope.client.enduser.pages.MustChangePassword;
import org.apache.syncope.client.enduser.pages.SelfConfirmPasswordReset;
import org.apache.syncope.client.enduser.panels.Sidebar;
import org.apache.syncope.client.lib.AnonymousAuthenticationHandler;
import org.apache.syncope.client.lib.SyncopeClient;
import org.apache.syncope.client.lib.SyncopeAnonymousClient;
import org.apache.syncope.client.lib.SyncopeClientFactoryBean;
import org.apache.syncope.client.ui.commons.SyncopeUIRequestCycleListener;
import org.apache.syncope.client.ui.commons.annotations.Resource;
Expand Down Expand Up @@ -246,9 +245,8 @@ public Session newSession(final Request request, final Response response) {
return new SyncopeEnduserSession(request);
}

public SyncopeClient newAnonymousClient() {
return newClientFactory().create(
new AnonymousAuthenticationHandler(props.getAnonymousUser(), props.getAnonymousKey()));
public SyncopeAnonymousClient newAnonymousClient() {
return newClientFactory().createAnonymous(props.getAnonymousUser(), props.getAnonymousKey());
}

public SyncopeClientFactoryBean newClientFactory() {
Expand Down Expand Up @@ -278,10 +276,6 @@ public String getAnonymousUser() {
return props.getAnonymousUser();
}

public String getAnonymousKey() {
return props.getAnonymousKey();
}

public boolean isCaptchaEnabled() {
return props.isCaptcha();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,11 +88,6 @@ protected void sendError(final String error) {
SyncopeEnduserSession.get().error(error);
}

@Override
protected String getAnonymousUser() {
return SyncopeWebApplication.get().getAnonymousUser();
}

@Override
protected void authenticate(final String username, final String password, final AjaxRequestTarget target)
throws NotAuthorizedException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.isNull;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

Expand All @@ -35,6 +36,7 @@
import org.apache.cxf.jaxrs.client.Client;
import org.apache.syncope.client.enduser.init.ClassPathScanImplementationLookup;
import org.apache.syncope.client.lib.AuthenticationHandler;
import org.apache.syncope.client.lib.SyncopeAnonymousClient;
import org.apache.syncope.client.lib.SyncopeClient;
import org.apache.syncope.client.lib.SyncopeClientFactoryBean;
import org.apache.syncope.client.ui.commons.MIMETypesLoader;
Expand Down Expand Up @@ -199,12 +201,14 @@ private UserTO getUserTO() {
@Override
public SyncopeClientFactoryBean newClientFactory() {
SyncopeClient client = mock(SyncopeClient.class);
SyncopeAnonymousClient anonymousClient = mock(SyncopeAnonymousClient.class);

when(client.getJWT()).thenReturn("<anyJWT>");

when(client.self()).thenReturn(Triple.of(new HashMap<>(), List.of(), getUserTO()));

when(client.platform()).thenReturn(new PlatformInfo());
when(client.numbers()).thenAnswer(ic -> {
when(anonymousClient.platform()).thenReturn(new PlatformInfo());
when(anonymousClient.numbers()).thenAnswer(ic -> {
NumbersInfo numbersInfo = new NumbersInfo();

numbersInfo.getConfCompleteness().put(
Expand All @@ -228,7 +232,7 @@ public SyncopeClientFactoryBean newClientFactory() {

return numbersInfo;
});
when(client.system()).thenReturn(new SystemInfo());
when(anonymousClient.system()).thenReturn(new SystemInfo());

SyncopeService syncopeService = getSyncopeService();
when(client.getService(SyncopeService.class)).thenReturn(syncopeService);
Expand All @@ -243,6 +247,7 @@ public SyncopeClientFactoryBean newClientFactory() {
when(clientFactory.setDomain(any())).thenReturn(clientFactory);
when(clientFactory.create(any(AuthenticationHandler.class))).thenReturn(client);
when(clientFactory.create(anyString(), anyString())).thenReturn(client);
when(clientFactory.createAnonymous(anyString(), isNull())).thenReturn(anonymousClient);

return clientFactory;
}
Expand Down
2 changes: 1 addition & 1 deletion client/idrepo/enduser/src/test/resources/log4j2.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ under the License.

<loggers>

<asyncLogger name="org.apache.syncope.client.lib" additivity="false" level="OFF">
<asyncLogger name="org.apache.syncope.client.lib" additivity="false" level="ERROR">
<appender-ref ref="console"/>
</asyncLogger>

Expand Down

This file was deleted.

Loading