Skip to content

Commit

Permalink
Add user.onboard.core.service.
Browse files Browse the repository at this point in the history
  • Loading branch information
JeethJJ committed Dec 13, 2023
1 parent bc75211 commit b5269ef
Show file tree
Hide file tree
Showing 11 changed files with 727 additions and 0 deletions.
126 changes: 126 additions & 0 deletions components/org.wso2.carbon.identity.user.onboard.core.service/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2023, WSO2 LLC. (http://www.wso2.org).
~
~ WSO2 Inc. licenses this file to you under the Apache License,
~ Version 2.0 (the "License"); you may not use this file except
~ in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<parent>
<groupId>org.wso2.carbon.identity.governance</groupId>
<artifactId>identity-governance</artifactId>
<version>1.8.98-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>

<modelVersion>4.0.0</modelVersion>
<artifactId>org.wso2.carbon.identity.user.onboard.core.service</artifactId>
<packaging>bundle</packaging>
<name>WSO2 Carbon - Offline User Onboard Management Feature</name>

<dependencies>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.scr.ds-annotations</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.wso2.carbon</groupId>
<artifactId>org.wso2.carbon.user.core</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.wso2.carbon</groupId>
<artifactId>org.wso2.carbon.utils</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.wso2.carbon</groupId>
<artifactId>org.wso2.carbon.user.api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.wso2.carbon</groupId>
<artifactId>org.wso2.carbon.core.services</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.wso2.carbon.identity.framework</groupId>
<artifactId>org.wso2.carbon.identity.event</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.wso2.carbon.identity.framework</groupId>
<artifactId>org.wso2.carbon.identity.base</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.wso2.config.mapper</groupId>
<artifactId>config-mapper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.wso2.carbon.identity.governance</groupId>
<artifactId>org.wso2.carbon.identity.recovery</artifactId>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>
${project.artifactId}
</Bundle-SymbolicName>
<Private-Package>
org.wso2.carbon.identity.user.onboard.core.service.internal
</Private-Package>
<Export-Package>
!org.wso2.carbon.identity.user.onboard.core.service.internal,
org.wso2.carbon.identity.user.onboard.core.service.*; version = "${project.version}"
</Export-Package>
<Import-Package>
org.osgi.framework; version="${osgi.framework.imp.pkg.version.range}",
org.osgi.service.component; version="${osgi.service.component.imp.pkg.version.range}",
org.apache.commons.logging.*; version="${commons-logging.osgi.version.range}",
org.apache.commons.lang.*; version="${commons-lang.osgi.version.range}",

org.wso2.carbon.base.*; version="${carbon.kernel.package.import.version.range}",
org.wso2.carbon.context.*; version="${carbon.kernel.package.import.version.range}",
org.wso2.carbon.user.core.*; version="${carbon.kernel.package.import.version.range}",

org.wso2.carbon.user.api.*; version="${carbon.user.api.imp.pkg.version.range}",

org.wso2.carbon.identity.core.*; version="${project.version}",
org.wso2.carbon.identity.application.*; version="${project.version}",
org.wso2.carbon.identity.event.*; version="${project.version}",

org.wso2.carbon.identity.recovery.*; version="${identity.governance.imp.pkg.version.range}",
org.wso2.carbon.identity.governance.*; version="${identity.governance.imp.pkg.version.range}"
</Import-Package>
<!--This dynamic import is intentionally added as this is not loaded through the OSGI class loader.-->
<DynamicImport-Package>org.wso2.config.mapper</DynamicImport-Package>
</instructions>
</configuration>
</plugin>
</plugins>
</build>


</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/*
* Copyright (c) 2023, WSO2 LLC. (http://www.wso2.com).
*
* WSO2 LLC. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
* in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/

package org.wso2.carbon.identity.user.onboard.core.service;


import org.wso2.carbon.identity.recovery.IdentityRecoveryException;
import org.wso2.carbon.identity.user.onboard.core.service.exception.UserOnboardServiceException;;
import org.wso2.carbon.identity.user.onboard.core.service.model.Configuration;

/**
* Core OSGi service for user onboarding related utilities.
*/
public interface UserOnboardCoreService {

/**
* This method generate password reset link.
*
* @param configuration Invitation link configuration.
* @return password reset link.
* @throws UserOnboardServiceException
*/
String generatePasswordResetLink(Configuration configuration) throws IdentityRecoveryException;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
/*
* Copyright (c) 2023, WSO2 LLC. (http://www.wso2.com).
*
* WSO2 LLC. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
* in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/

package org.wso2.carbon.identity.user.onboard.core.service;


import org.wso2.carbon.identity.recovery.IdentityRecoveryException;
import org.wso2.carbon.identity.user.onboard.core.service.model.Configuration;
import org.wso2.carbon.identity.user.onboard.core.service.password.ResetLinkGenerator;

/**
* Default implementation of the @see UserOnboardCoreService.
*/
public class UserOnboardCoreServiceImpl implements UserOnboardCoreService {

@Override
public String generatePasswordResetLink(Configuration configuration)
throws IdentityRecoveryException {

ResetLinkGenerator resetLinkGenerator = new ResetLinkGenerator();
return resetLinkGenerator.generateResetLink(configuration);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
/*
* Copyright (c) 2023, WSO2 LLC. (http://www.wso2.com).
*
* WSO2 LLC. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
* in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/

package org.wso2.carbon.identity.user.onboard.core.service.exception;

/**
* Generic exception that is thrown when there is an error in the user onboard core services.
*/
public class UserOnboardServiceException extends Exception {

/**
* Creates UserOnboardCoreService Exception.
*/
public UserOnboardServiceException() {

super();
}

/**
* Creates UserOnboardCoreService Exception.
*
* @param message Error message.
*/
public UserOnboardServiceException(String message) {

super(message);
}

/**
* Creates UserOnboardCoreService Exception.
*
* @param throwable Error or exception.
*/
public UserOnboardServiceException(Throwable throwable) {

super(throwable);
}

/**
* Creates UserOnboardCoreService Exception.
*
* @param message Error message.
* @param throwable Errors or Exception.
*/
public UserOnboardServiceException(String message, Throwable throwable) {

super(message, throwable);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
/*
* Copyright (c) 2023, WSO2 LLC. (http://www.wso2.com).
*
* WSO2 LLC. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
* in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/

package org.wso2.carbon.identity.user.onboard.core.service.internal;


import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.osgi.service.component.ComponentContext;
import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component;
import org.wso2.carbon.identity.user.onboard.core.service.UserOnboardCoreService;
import org.wso2.carbon.identity.user.onboard.core.service.UserOnboardCoreServiceImpl;

/**
* Service component class of the user onboard manager core service.
*/
@Component(
name = "org.wso2.carbon.identity.api.user.onboard.core.service.component",
immediate = true
)
public class ServiceComponent {

private static final Log LOG = LogFactory.getLog(ServiceComponent.class);

@Activate
protected void activate(ComponentContext componentContext) {

try {
componentContext.getBundleContext().registerService(UserOnboardCoreService.class.getName(),
new UserOnboardCoreServiceImpl(), null);
LOG.info("User onboard api core service component activated successfully.");
} catch (Throwable throwable) {
LOG.error("Failed to activate the User onboard api core service component.", throwable);
}
}
}
Loading

0 comments on commit b5269ef

Please sign in to comment.