use of org.apache.jackrabbit.oak.spi.security.SecurityProvider in project jackrabbit-oak by apache.
the class SecurityProviderRegistrationTest method testUnbindMandatoryCandidate.
@Test
public void testUnbindMandatoryCandidate() {
registration.activate(context.bundleContext(), requiredServiceIdMap("actionProvider"));
registration.bindUserConfiguration(mockConfiguration(UserConfiguration.class));
AuthorizableActionProvider ap = Mockito.mock(AuthorizableActionProvider.class);
registration.bindAuthorizableActionProvider(ap, ImmutableMap.of(Constants.SERVICE_PID, "actionProvider"));
SecurityProvider service = context.getService(SecurityProvider.class);
assertNotNull(service);
registration.unbindAuthorizableActionProvider(ap, ImmutableMap.of(Constants.SERVICE_PID, "actionProvider"));
service = context.getService(SecurityProvider.class);
assertNull(service);
}
use of org.apache.jackrabbit.oak.spi.security.SecurityProvider in project jackrabbit-oak by apache.
the class SecurityProviderRegistrationTest method testActivate.
@Test
public void testActivate() {
registration.activate(context.bundleContext(), requiredServiceIdMap("serviceA", "serviceB"));
SecurityProvider service = context.getService(SecurityProvider.class);
assertNull(service);
RestrictionProvider mockRp = Mockito.mock(RestrictionProvider.class);
registration.bindRestrictionProvider(mockRp, ImmutableMap.of(Constants.SERVICE_PID, "serviceA"));
service = context.getService(SecurityProvider.class);
assertNull(service);
registration.bindAuthorizationConfiguration(new AuthorizationConfigurationImpl(), ImmutableMap.of(Constants.SERVICE_PID, "serviceB"));
service = context.getService(SecurityProvider.class);
assertNotNull(service);
}
use of org.apache.jackrabbit.oak.spi.security.SecurityProvider in project jackrabbit-oak by apache.
the class CugConfigurationWithMountsTest method createConfiguration.
private static CugConfiguration createConfiguration(MountInfoProvider mip) {
ConfigurationParameters params = ConfigurationParameters.of(AbstractCugTest.CUG_CONFIG, ConfigurationParameters.of(CugConstants.PARAM_MOUNT_PROVIDER, mip));
SecurityProvider sp = new CugSecurityProvider(ConfigurationParameters.of(ImmutableMap.of(AuthorizationConfiguration.NAME, params)));
return new CugConfiguration(sp);
}
use of org.apache.jackrabbit.oak.spi.security.SecurityProvider in project jackrabbit-oak by apache.
the class LoginModuleImpl method getUserAuthentication.
@CheckForNull
private Authentication getUserAuthentication(@Nullable String loginName) {
SecurityProvider securityProvider = getSecurityProvider();
Root root = getRoot();
if (securityProvider != null && root != null) {
UserConfiguration uc = securityProvider.getConfiguration(UserConfiguration.class);
UserAuthenticationFactory factory = uc.getParameters().getConfigValue(UserConstants.PARAM_USER_AUTHENTICATION_FACTORY, null, UserAuthenticationFactory.class);
if (factory != null) {
return factory.getAuthentication(uc, root, loginName);
} else {
log.error("No user authentication factory configured in user configuration.");
}
}
return null;
}
use of org.apache.jackrabbit.oak.spi.security.SecurityProvider in project jackrabbit-oak by apache.
the class AuthenticationConfigurationImpl method getLoginContextProvider.
//----------------------------------------< AuthenticationConfiguration >---
/**
* Create a {@code LoginContextProvider} using standard
* {@link javax.security.auth.login.Configuration#getConfiguration() JAAS}
* functionality. In case no login configuration for the specified app name
* can be retrieve this implementation uses the default as defined by
* {@link org.apache.jackrabbit.oak.spi.security.authentication.ConfigurationUtil#getDefaultConfiguration(org.apache.jackrabbit.oak.spi.security.ConfigurationParameters)}.
* <p>
* The {@link LoginContextProvider} implementation is intended to be used with
* <ul>
* <li>Regular login using JAAS {@link javax.security.auth.spi.LoginModule} or</li>
* <li>Pre-authenticated subjects in which case any authentication
* related validation is omitted</li>
* </ul>
*
* <h3>Configuration Options</h3>
* <ul>
* <li>{@link #PARAM_APP_NAME}: The appName passed to
* {@code Configuration#getAppConfigurationEntry(String)}. The default
* value is {@link #DEFAULT_APP_NAME}.</li>
* </ul>
*
* @param contentRepository The content repository.
* @return An new instance of {@link LoginContextProvider}.
*/
@Nonnull
@Override
public LoginContextProvider getLoginContextProvider(ContentRepository contentRepository) {
String appName = getParameters().getConfigValue(PARAM_APP_NAME, DEFAULT_APP_NAME);
SecurityProvider provider = getSecurityProvider();
Whiteboard whiteboard = null;
if (provider instanceof WhiteboardAware) {
whiteboard = ((WhiteboardAware) provider).getWhiteboard();
} else {
log.warn("Unable to obtain whiteboard from SecurityProvider");
}
return new LoginContextProviderImpl(appName, getParameters(), contentRepository, getSecurityProvider(), whiteboard);
}
Aggregations