Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade to sling 48 #2

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from
Draft
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
78 changes: 21 additions & 57 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,20 +23,18 @@

<parent>
<groupId>org.apache.sling</groupId>
<artifactId>sling</artifactId>
<version>26</version>
<artifactId>sling-bundle-parent</artifactId>
<version>48</version>
<relativePath/>
</parent>

<artifactId>org.apache.sling.auth.xing.login</artifactId>
<version>0.0.3-SNAPSHOT</version>
<packaging>bundle</packaging>

<name>Apache Sling Authentication XING Login</name>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<project.build.outputTimestamp>1</project.build.outputTimestamp>
</properties>

<scm>
Expand All @@ -54,18 +52,33 @@
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<!-- OSGi -->
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
<artifactId>osgi.core</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.compendium</artifactId>
<artifactId>org.osgi.service.component</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.service.component.annotations</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.service.metatype.annotations</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.annotation.versioning</artifactId>
<scope>provided</scope>
</dependency>
<!-- Apache Commons -->
Expand Down Expand Up @@ -100,12 +113,6 @@
<version>0.0.3-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.commons.osgi</artifactId>
<version>2.2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.jcr.api</artifactId>
Expand All @@ -125,12 +132,6 @@
<version>2.0.0</version>
<scope>provided</scope>
</dependency>
<!-- Apache Felix -->
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.scr.annotations</artifactId>
<scope>provided</scope>
</dependency>
<!-- Gson -->
<dependency>
<groupId>com.google.code.gson</groupId>
Expand All @@ -153,41 +154,4 @@
<scope>test</scope>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-Category>sling</Bundle-Category>
<Embed-Dependency>
gson;inline=true,
org.apache.sling.commons.osgi;inline="org/apache/sling/commons/osgi/PropertiesUtil.*"
</Embed-Dependency>
<_removeheaders>
Embed-Dependency,
Private-Package,
Include-Resource
</_removeheaders>
</instructions>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-scr-plugin</artifactId>
<version>1.26.4</version>
<executions>
<execution>
<goals>
<goal>scr</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

</project>
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@
*/
package org.apache.sling.auth.xing.login;

import aQute.bnd.annotation.ProviderType;
import org.apache.jackrabbit.api.security.user.User;
import org.apache.sling.auth.xing.api.XingUserManager;
import org.osgi.annotation.versioning.ProviderType;

@ProviderType
public interface XingLoginUserManager extends XingUserManager {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,49 +18,40 @@
*/
package org.apache.sling.auth.xing.login.impl;

import java.util.Dictionary;

import javax.jcr.Credentials;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.jcr.Value;
import javax.jcr.ValueFactory;

import org.apache.commons.lang.StringUtils;
import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Deactivate;
import org.apache.felix.scr.annotations.Modified;
import org.apache.felix.scr.annotations.Properties;
import org.apache.felix.scr.annotations.Property;
import org.apache.felix.scr.annotations.Reference;
import org.apache.felix.scr.annotations.Service;
import org.apache.jackrabbit.api.security.user.User;
import org.apache.jackrabbit.api.security.user.UserManager;
import org.apache.sling.auth.xing.api.AbstractXingUserManager;
import org.apache.sling.auth.xing.api.XingUser;
import org.apache.sling.auth.xing.login.XingLogin;
import org.apache.sling.auth.xing.login.XingLoginUserManager;
import org.apache.sling.auth.xing.login.XingLoginUtil;
import org.apache.sling.commons.osgi.PropertiesUtil;
import org.apache.sling.jcr.api.SlingRepository;
import org.osgi.framework.Constants;
import org.osgi.service.component.ComponentContext;
import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Deactivate;
import org.osgi.service.component.annotations.Modified;
import org.osgi.service.component.annotations.Reference;
import org.osgi.service.component.propertytypes.ServiceDescription;
import org.osgi.service.component.propertytypes.ServiceRanking;
import org.osgi.service.component.propertytypes.ServiceVendor;
import org.osgi.service.metatype.annotations.AttributeDefinition;
import org.osgi.service.metatype.annotations.Designate;
import org.osgi.service.metatype.annotations.ObjectClassDefinition;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@Component(
label = "Apache Sling Authentication XING Login “Default User Manager”",
description = "Default User Manager for Sling Authentication XING Login",
immediate = true,
metatype = true
)
@Service
@Properties({
@Property(name = Constants.SERVICE_VENDOR, value = XingLogin.SERVICE_VENDOR),
@Property(name = Constants.SERVICE_DESCRIPTION, value = "Default User Manager for Sling Authentication XING Login"),
@Property(name = Constants.SERVICE_RANKING, intValue = 0, propertyPrivate = false)
})
@Component
@ServiceRanking(0)
@ServiceVendor(XingLogin.SERVICE_VENDOR)
@ServiceDescription("Default User Manager for Sling Authentication XING Login")
@Designate(ocd = DefaultXingLoginUserManager.Config.class)
public class DefaultXingLoginUserManager extends AbstractXingUserManager implements XingLoginUserManager {

private String secretKey;
Expand All @@ -76,54 +67,59 @@ public class DefaultXingLoginUserManager extends AbstractXingUserManager impleme

private static final String DEFAULT_USER_HASH_PROPERTY = "hash";

@Property(value = "")
private static final String SECRET_KEY_PARAMETER = "org.apache.sling.auth.xing.login.impl.DefaultXingLoginUserManager.secretKey";
@SuppressWarnings("java:S100")
@ObjectClassDefinition(name = "Apache Sling Authentication XING Login “Default User Manager”",
description = "Default User Manager for Sling Authentication XING Login")
public @interface Config {

@AttributeDefinition
String org_apache_sling_auth_xing_login_impl_DefaultXingLoginUserManager_secretKey() default "";

@Property(value = DEFAULT_USER_DATA_PROPERTY)
private static final String USER_DATA_PROPERTY_PARAMETER = "org.apache.sling.auth.xing.login.impl.DefaultXingLoginUserManager.user.property.data";
@AttributeDefinition
String org_apache_sling_auth_xing_login_impl_DefaultXingLoginUserManager_user_property_data() default DEFAULT_USER_DATA_PROPERTY;

@Property(value = DEFAULT_USER_HASH_PROPERTY)
private static final String USER_HASH_PROPERTY_PARAMETER = "org.apache.sling.auth.xing.login.impl.DefaultXingLoginUserManager.user.property.hash";
@AttributeDefinition
String org_apache_sling_auth_xing_login_impl_DefaultXingLoginUserManager_user_property_hash() default DEFAULT_USER_HASH_PROPERTY;

@Property(boolValue = DEFAULT_AUTO_CREATE_USER)
private static final String AUTO_CREATE_USER_PARAMETER = "org.apache.sling.auth.xing.login.impl.DefaultXingLoginUserManager.user.create.auto";
@AttributeDefinition
boolean org_apache_sling_auth_xing_login_impl_DefaultXingLoginUserManager_user_create_auto() default DEFAULT_AUTO_CREATE_USER;

@Property(boolValue = DEFAULT_AUTO_UPDATE_USER)
private static final String AUTO_UPDATE_USER_PARAMETER = "org.apache.sling.auth.xing.login.impl.DefaultXingLoginUserManager.user.update.auto";
@AttributeDefinition
boolean org_apache_sling_auth_xing_login_impl_DefaultXingLoginUserManager_user_update_auto() default DEFAULT_AUTO_UPDATE_USER;
}

private final Logger logger = LoggerFactory.getLogger(DefaultXingLoginUserManager.class);

public DefaultXingLoginUserManager() {
}

@Activate
protected void activate(final ComponentContext componentContext) {
protected void activate(final Config config) {
logger.debug("activate");
configure(componentContext);
configure(config);
}

@Modified
protected void modified(final ComponentContext componentContext) {
protected void modified(final Config config) {
logger.debug("modified");
configure(componentContext);
configure(config);
}

@Deactivate
protected void deactivate(final ComponentContext componentContext) {
protected void deactivate(final Config config) {
logger.debug("deactivate");
if (session != null) {
session.logout();
session = null;
}
}

protected synchronized void configure(final ComponentContext componentContext) {
final Dictionary properties = componentContext.getProperties();
secretKey = PropertiesUtil.toString(properties.get(SECRET_KEY_PARAMETER), "").trim();
userDataProperty = PropertiesUtil.toString(properties.get(USER_DATA_PROPERTY_PARAMETER), DEFAULT_USER_DATA_PROPERTY).trim();
userHashProperty = PropertiesUtil.toString(properties.get(USER_HASH_PROPERTY_PARAMETER), DEFAULT_USER_HASH_PROPERTY).trim();
autoCreateUser = PropertiesUtil.toBoolean(properties.get(AUTO_CREATE_USER_PARAMETER), DEFAULT_AUTO_CREATE_USER);
autoUpdateUser = PropertiesUtil.toBoolean(properties.get(AUTO_UPDATE_USER_PARAMETER), DEFAULT_AUTO_UPDATE_USER);
protected synchronized void configure(final Config config) {
secretKey = config.org_apache_sling_auth_xing_login_impl_DefaultXingLoginUserManager_secretKey().trim();
userDataProperty = config.org_apache_sling_auth_xing_login_impl_DefaultXingLoginUserManager_user_property_data().trim();
userHashProperty = config.org_apache_sling_auth_xing_login_impl_DefaultXingLoginUserManager_user_property_hash().trim();
autoCreateUser = config.org_apache_sling_auth_xing_login_impl_DefaultXingLoginUserManager_user_create_auto();
autoUpdateUser = config.org_apache_sling_auth_xing_login_impl_DefaultXingLoginUserManager_user_update_auto();

if (StringUtils.isEmpty(secretKey)) {
logger.warn("configured secret key is empty");
Expand Down
Loading