Giter Site home page Giter Site logo

Comments (14)

bdemers avatar bdemers commented on August 24, 2024

Hey @guangweiyao, thanks for reaching out!

How did you include the jar in your project? Just as a transitive dep? Have you tried wrapping it in a bundle?

from okta-jwt-verifier-java.

guangweiyao avatar guangweiyao commented on August 24, 2024

Hi @bdemers thank you for replying. I followed the instruction in the readme and included the maven dependencies in my pom file. In the code, I declared and registered an OSGI service, imported the okta
jwt packages, and used it same way as example.
And in the project pom file I also have maven-bundle-plugin to build the OSGI bundle.

But my IDE is showing "The package 'com.okta.jwt' is inside a non-bundle dependency
Inspection info:
This inspections reports usage of classes from packages not accessible inside the OSGi context - i.e. those located in .jar files not packaged as bundles, or not exported by bundles, or not imported in manifest file (if applicable). Asking for such a classes may cause "class not found" exceptions at runtime.
The inspection is disabled in tests by default (see "Check tests" option)." When I deployed, it was not resolved in the OSGI container.

Let me know if above detail helps or you need more. Thank you.

from okta-jwt-verifier-java.

bdemers avatar bdemers commented on August 24, 2024

@guangweiyao can you provide a standalone example? We can probably help suggest a work around.

from okta-jwt-verifier-java.

guangweiyao avatar guangweiyao commented on August 24, 2024

@bdemers here's the java class
`package com...okta.services.token;

import com...okta.repository.OktaRepositoryService;
import com.okta.jwt.AccessTokenVerifier;
import com.okta.jwt.Jwt;
import com.okta.jwt.JwtVerifiers;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.time.Duration;

@component(service = AccessTokenVerifyService.class)
public class AccessTokenVerifyService {

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

@reference
OktaRepositoryService oktaRepositoryService;

/**

  • Verifies access token.
  • @param jwtString
  • @return verified decoded access token
  • @throws Exception
    */
    public Jwt verifyToken(String jwtString) throws Exception {
AccessTokenVerifier jwtVerifier = JwtVerifiers.accessTokenVerifierBuilder()
  .setIssuer(oktaRepositoryService.getOktaIssuerUrl()) // todo: check if there needs to be multiple okta authorization servers
  .setAudience(oktaRepositoryService.getOktaAudience()) // todo: clarify if this is the correct audience for the authorization server
  .setConnectionTimeout(Duration.ofSeconds(1)) // defaults to 1000ms
  .setReadTimeout(Duration.ofSeconds(1))       // defaults to 1000ms
  .build();

Jwt jwt = jwtVerifier.decode(jwtString);
return jwt;

}
}
`

from okta-jwt-verifier-java.

guangweiyao avatar guangweiyao commented on August 24, 2024

here's the core module pom

`

4.0.0
<!-- ====================================================================== -->
<!-- P A R E N T  P R O J E C T  D E S C R I P T I O N                      -->
<!-- ====================================================================== -->
<parent>
    <groupId>***.***.***</groupId>
    <artifactId>***-***-***-***</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
</parent>

<!-- ====================================================================== -->
<!-- P R O J E C T  D E S C R I P T I O N                                   -->
<!-- ====================================================================== -->
<artifactId>***-***-***-***.core</artifactId>
<name>*** *** *** App Core</name>
<version>0.0.1-SNAPSHOT</version>
<description>*** *** *** App Core Bundle</description>
<packaging>bundle</packaging>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <extensions>true</extensions>
            <configuration>
                <instructions>
                    <!-- The Sling-Model-Packages instruction needs to point to the implementation package -->
                    <Sling-Model-Packages>***.***.***.auth.internal.models</Sling-Model-Packages>
                    <!-- Enable processing of OSGI DS component annotations -->
                    <_dsannotations>*</_dsannotations>
                    <!-- Enable processing of OSGI metatype annotations -->
                    <_metatypeannotations>*</_metatypeannotations>
                </instructions>
            </configuration>
        </plugin>
    </plugins>
</build>

<!-- ====================================================================== -->
<!-- P R O F I L E S                                                        -->
<!-- ====================================================================== -->
<profiles>
    <!-- Development profile: install only the bundle -->
    <profile>
        <id>autoInstallBundle</id>
        <activation>
            <activeByDefault>false</activeByDefault>
        </activation>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.sling</groupId>
                    <artifactId>maven-sling-plugin</artifactId>
                    <configuration>
                        <slingUrlSuffix>/apps/***-***-***-app/install/</slingUrlSuffix>
                        <failOnError>true</failOnError>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>

    <profile>
        <id>autoInstallPackage</id>
        <activation>
            <activeByDefault>false</activeByDefault>
        </activation>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.sling</groupId>
                    <artifactId>maven-sling-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>install-bundle</id>
                            <goals>
                                <goal>install</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <slingUrl>${quickstart.url}/system/console</slingUrl>
                        <failOnError>true</failOnError>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>
    <profile>
        <id>autoInstallPackagePublish</id>
        <activation>
            <activeByDefault>false</activeByDefault>
        </activation>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.sling</groupId>
                    <artifactId>maven-sling-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>install-bundle</id>
                            <goals>
                                <goal>install</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <slingUrl>${quickstart.publish.url}/system/console</slingUrl>
                        <failOnError>true</failOnError>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>
    <profile>
        <!-- This is the release profile. -->
        <id>release</id>
        <activation>
            <activeByDefault>false</activeByDefault>
        </activation>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>attach-javadocs</id>
                            <goals>
                                <goal>jar</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

<!-- ====================================================================== -->
<!-- D E P E N D E N C I E S                                                -->
<!-- ====================================================================== -->
<dependencies>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
    </dependency>
    <dependency>
        <groupId>javax.jcr</groupId>
        <artifactId>jcr</artifactId>
    </dependency>
    <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>osgi.annotation</artifactId>
    </dependency>
    <dependency>
        <groupId>com.google.code.findbugs</groupId>
        <artifactId>jsr305</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-collections4</artifactId>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.jackrabbit</groupId>
        <artifactId>jackrabbit-jcr-commons</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.sling</groupId>
        <artifactId>org.apache.sling.commons.osgi</artifactId>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.sling</groupId>
        <artifactId>org.apache.sling.i18n</artifactId>
    </dependency>
    <!-- TODO: CQ-4243301 remove after the backport of the API and its inclusion in the Uber-Jar  -->
    <dependency>
        <groupId>com.adobe.aem</groupId>
        <artifactId>uber-jar</artifactId>
        <classifier>apis</classifier>
    </dependency>
    <dependency>
        <groupId>com.okta.jwt</groupId>
        <artifactId>okta-jwt-verifier</artifactId>
    </dependency>
    <dependency>
        <groupId>com.okta.jwt</groupId>
        <artifactId>okta-jwt-verifier-impl</artifactId>
        <scope>runtime</scope>
    </dependency>

    <!-- Testing -->
    <dependency>
        <groupId>com.adobe.cq</groupId>
        <artifactId>core.wcm.components.junit.core</artifactId>
        <version>2.2.2</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.sling</groupId>
        <artifactId>org.apache.sling.servlet-helpers</artifactId>
        <version>1.1.2</version>
        <scope>test</scope>
    </dependency>
    <!-- for testing we need the new ResourceTypeBasedResourcePicker -->
    <dependency>
        <groupId>org.apache.sling</groupId>
        <artifactId>org.apache.sling.models.impl</artifactId>
        <version>1.4.4</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-imaging</artifactId>
        <version>1.0-R1534292</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>20.0</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>io.wcm</groupId>
        <artifactId>io.wcm.testing.aem-mock</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.apache.sling</groupId>
                <artifactId>org.apache.sling.models.impl</artifactId>
            </exclusion>
        </exclusions>
        <version>2.2.12</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.sling</groupId>
        <artifactId>org.apache.sling.testing.sling-mock</artifactId>
        <exclusions>
            <!-- Exclude the older version of the API and use the one from the uber-jar -->
            <exclusion>
                <groupId>org.apache.sling</groupId>
                <artifactId>org.apache.sling.models.api</artifactId>
            </exclusion>
        </exclusions>
        <version>2.2.16</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-core</artifactId>
        <version>1.10.19</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-module-junit4</artifactId>
        <version>1.7.3</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-api-mockito</artifactId>
        <version>1.7.3</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-core</artifactId>
        <version>1.7.3</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.javassist</groupId>
        <artifactId>javassist</artifactId>
        <version>3.18.2-GA</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.1</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.felix</groupId>
        <artifactId>org.apache.felix.http.servlet-api</artifactId>
        <version>1.1.2</version>
        <scope>provided</scope>
    </dependency>


    <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.3</version>
        <scope>provided</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/javax.mail/mail -->
	<dependency>
		<groupId>javax.mail</groupId>
		<artifactId>mail</artifactId>
		<version>1.4.7</version>
	</dependency>
	<dependency>
		<groupId>com.adobe.acs</groupId>
		<artifactId>acs-aem-commons-bundle</artifactId>
		<version>3.9.0</version>
		<scope>provided</scope>
	</dependency>
	<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-email -->
	<dependency>
		<groupId>org.apache.commons</groupId>
		<artifactId>commons-email</artifactId>
		<version>1.4</version>
	</dependency>
</dependencies>
`

from okta-jwt-verifier-java.

guangweiyao avatar guangweiyao commented on August 24, 2024

project pom
`

<modelVersion>4.0.0</modelVersion>


<!-- ====================================================================== -->
<!-- P R O J E C T  D E S C R I P T I O N                                   -->
<!-- ====================================================================== -->
<groupId>***.***.***</groupId>
<artifactId>***-***-***-app</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>

<name>*** *** *** App Reactor</name>
<description>Reactor POM for *** *** *** App</description>

<!-- ====================================================================== -->
<!-- M O D U L E S                                                          -->
<!-- ====================================================================== -->
<modules>
    <module>core</module>
    <module>react-app</module>
    <module>ui.apps</module>
    <!--<module>ui.content</module>-->
    <module>all</module>
</modules>

<!-- ====================================================================== -->
<!-- P R O P E R T I E S                                                    -->
<!-- ====================================================================== -->
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

    <aem.host>localhost</aem.host>
    <aem.port>4502</aem.port>
    <aem.contextPath />
    <aem.publish.host>localhost</aem.publish.host>
    <aem.publish.port>4503</aem.publish.port>
    <aem.publish.contextPath />
    <aem.java.version>8</aem.java.version>

    <quickstart.url>http://${aem.host}:${aem.port}${aem.contextPath}</quickstart.url>
    <quickstart.publish.url>http://${aem.publish.host}:${aem.publish.port}${aem.publish.contextPath}</quickstart.publish.url>

    <sling.user>admin</sling.user>
    <sling.password>admin</sling.password>

    <vault.package.group>***.***.***</vault.package.group>
    <vault.package.company>*** ***</vault.package.company>
    <vault.user>admin</vault.user>
    <vault.password>admin</vault.password>

    <frontend-maven-plugin.version>1.6</frontend-maven-plugin.version>
    <node.version>v10.16.0</node.version>
    <npm.version>6.2.0</npm.version>

    <slf4j.version>1.7.6</slf4j.version>
    <okta-jwt.version>0.4.0</okta-jwt.version>
</properties>

<!-- ====================================================================== -->
<!-- B U I L D   D E F I N I T I O N                                        -->
<!-- ====================================================================== -->
<build>
    <!-- allows shorthand "mvn" to run a normal "mvn clean install" build -->
    <defaultGoal>clean install</defaultGoal>

    <plugins>
        <!-- Maven Release Plugin -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-release-plugin</artifactId>
            <version>2.5.3</version>
            <dependencies>
                <dependency>
                    <groupId>org.apache.maven.release</groupId>
                    <artifactId>maven-release-oddeven-policy</artifactId>
                    <version>2.5.3</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.maven.scm</groupId>
                    <artifactId>maven-scm-provider-gitexe</artifactId>
                    <version>1.9.1</version>
                </dependency>
            </dependencies>
            <configuration>
                <scmCommentPrefix>@releng [maven-scm] :</scmCommentPrefix>
                <preparationGoals>clean install</preparationGoals>
                <goals>deploy</goals>
                <releaseProfiles>release</releaseProfiles>
                <projectVersionPolicyId>OddEvenVersionPolicy</projectVersionPolicyId>
                <autoVersionSubmodules>true</autoVersionSubmodules>
            </configuration>
        </plugin>

        <!-- Maven Source Plugin -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>3.0.1</version>
            <inherited>true</inherited>
        </plugin>

        <!-- Maven Resources Plugin -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <configuration>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>

        <!-- Maven Jar Plugin -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.0.2</version>
        </plugin>

        <!-- Maven Enforcer Plugin -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-enforcer-plugin</artifactId>
            <executions>
                <execution>
                    <id>enforce-maven</id>
                    <goals>
                        <goal>enforce</goal>
                    </goals>
                    <configuration>
                        <rules>
                            <requireMavenVersion>
                                <version>[3.3.9,)</version>
                            </requireMavenVersion>
                            <requireJavaVersion>
                                <message>Project must be compiled with Java 8 or higher</message>
                                <version>1.8.0</version>
                            </requireJavaVersion>
                        </rules>
                    </configuration>
                </execution>
            </executions>
        </plugin>

        <!-- Maven Compiler Plugin -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>

        <!-- Maven IntelliJ IDEA Plugin -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-idea-plugin</artifactId>
            <version>2.2.1</version>
            <configuration>
                <jdkLevel>1.8</jdkLevel>
                <linkModules>true</linkModules>
                <downloadSources>true</downloadSources>
            </configuration>
        </plugin>

        <!-- Maven Eclipse Plugin -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-eclipse-plugin</artifactId>
            <version>2.10</version>
            <configuration>
                <downloadSources>true</downloadSources>
            </configuration>
        </plugin>
    </plugins>

    <pluginManagement>
        <plugins>

            <!-- Maven Clean Plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-clean-plugin</artifactId>
                <version>3.0.0</version>
            </plugin>

            <!-- Maven Resources Plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.0.2</version>
            </plugin>

            <!-- Maven Compiler Plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.6.1</version>
            </plugin>

            <!-- Apache Felix SCR Plugin -->
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-scr-plugin</artifactId>
                <version>1.20.0</version>
                <dependencies>
                    <dependency>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-simple</artifactId>
                        <version>${slf4j.version}</version>
                    </dependency>
                </dependencies>
                <executions>
                    <execution>
                        <id>generate-scr-scrdescriptor</id>
                        <goals>
                            <goal>scr</goal>
                        </goals>
                        <configuration>
                            <!-- Private service properties for all services. -->
                            <properties>
                                <service.vendor>Adobe Incorporated</service.vendor>
                            </properties>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <!-- Maven Installer Plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-install-plugin</artifactId>
                <version>2.5.2</version>
            </plugin>

            <!-- Maven Surefire Plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>3.0.0-M1</version>
                <configuration>
                    <!-- Workaround for https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=911925 -->
                    <useSystemClassLoader>false</useSystemClassLoader>
                </configuration>
            </plugin>

            <!-- Maven Failsafe Plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>3.0.0-M1</version>
            </plugin>

            <!-- Maven Deploy Plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-deploy-plugin</artifactId>
                <version>2.8.2</version>
            </plugin>

            <!-- Apache Sling Plugin -->
            <plugin>
                <groupId>org.apache.sling</groupId>
                <artifactId>maven-sling-plugin</artifactId>
                <version>2.2.0</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>install</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <slingUrl>${quickstart.url}/system/console/bundles</slingUrl>
                    <failOnError>true</failOnError>
                </configuration>
            </plugin>

            <!-- HTL Maven Plugin -->
            <plugin>
                <groupId>org.apache.sling</groupId>
                <artifactId>htl-maven-plugin</artifactId>
                <version>1.0.6</version>
                <configuration>
                    <failOnWarnings>true</failOnWarnings>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>validate</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <!-- Content Package Plugin -->
            <plugin>
                <groupId>com.day.jcr.vault</groupId>
                <artifactId>content-package-maven-plugin</artifactId>
                <version>0.0.24</version>
                <configuration>
                    <targetURL>${quickstart.url}/crx/packmgr/service.jsp</targetURL>
                    <failOnError>true</failOnError>
                    <failOnMissingEmbed>true</failOnMissingEmbed>
                </configuration>
            </plugin>

            <!-- Apache Filevault Package Plugin -->
            <plugin>
                <groupId>org.apache.jackrabbit</groupId>
                <artifactId>filevault-package-maven-plugin</artifactId>
                <version>1.0.1</version>
                <extensions>true</extensions>
                <configuration>
                    <failOnMissingEmbed>true</failOnMissingEmbed>
                    <!-- temporary, until https://issues.apache.org/jira/browse/JCRVLT-219 is fixed -->
                    <failOnDependencyErrors>false</failOnDependencyErrors>
                    <showImportPackageReport>false</showImportPackageReport>
                    <excludes>
                        <!-- exclude .vlt control files in the package -->
                        <exclude>**/.vlt</exclude>
                        <exclude>**/.vltignore</exclude>
                        <exclude>**/.gitignore</exclude>
                        <exclude>**/*.iml</exclude>
                        <exclude>**/.classpath</exclude>
                        <exclude>**/.project</exclude>
                        <exclude>**/.settings</exclude>
                        <exclude>**/.DS_Store</exclude>
                        <exclude>**/target/**</exclude>
                        <exclude>**/pom.xml</exclude>
                    </excludes>
                    <group>${vault.package.group}</group>
                </configuration>
            </plugin>

            <!-- Apache Felix Bundle Plugin -->
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <version>3.3.0</version>
                <inherited>true</inherited>
                <executions>
                    <execution>
                        <id>baseline</id>
                        <goals>
                            <goal>baseline</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <!-- Maven Remote Resources Plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-remote-resources-plugin</artifactId>
                <version>1.5</version>
                <configuration>
                    <resourceBundles>
                        <resourceBundle>
                            com.adobe:adobe-jar-resource-bundle:1.0.0
                        </resourceBundle>
                    </resourceBundles>
                </configuration>
            </plugin>

            <!-- Maven Enforcer Plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <version>1.4.1</version>
            </plugin>

            <!-- Maven Dependency Plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>3.0.0</version>
            </plugin>

            <!-- Build Helper Maven Plugin -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>3.0.0</version>
            </plugin>

            <!-- Build Number Maven Plugin -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>buildnumber-maven-plugin</artifactId>
                <version>1.1</version>
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>create</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <format>{0,date,yyyyMMdd}</format>
                    <items>
                        <item>timestamp</item>
                    </items>
                </configuration>
            </plugin>

            <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
            <plugin>
                <groupId>org.eclipse.m2e</groupId>
                <artifactId>lifecycle-mapping</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <lifecycleMappingMetadata>
                        <pluginExecutions>
                            <pluginExecution>
                                <pluginExecutionFilter>
                                    <groupId>org.apache.maven.plugins</groupId>
                                    <artifactId>maven-enforcer-plugin</artifactId>
                                    <versionRange>[1.0.0,)</versionRange>
                                    <goals>
                                        <goal>enforce</goal>
                                    </goals>
                                </pluginExecutionFilter>
                                <action>
                                    <ignore />
                                </action>
                            </pluginExecution>
                            <pluginExecution>
                                <pluginExecutionFilter>
                                    <groupId>
                                        org.apache.maven.plugins
                                    </groupId>
                                    <artifactId>
                                        maven-dependency-plugin
                                    </artifactId>
                                    <versionRange>
                                        [2.2,)
                                    </versionRange>
                                    <goals>
                                        <goal>copy-dependencies</goal>
                                        <goal>unpack</goal>
                                    </goals>
                                </pluginExecutionFilter>
                                <action>
                                    <ignore />
                                </action>
                            </pluginExecution>
                            <pluginExecution>
                                <pluginExecutionFilter>
                                    <groupId>
                                        org.codehaus.mojo
                                    </groupId>
                                    <artifactId>
                                        build-helper-maven-plugin
                                    </artifactId>
                                    <versionRange>
                                        [1.5,)
                                    </versionRange>
                                    <goals>
                                        <goal>
                                            reserve-network-port
                                        </goal>
                                    </goals>
                                </pluginExecutionFilter>
                                <action>
                                    <ignore />
                                </action>
                            </pluginExecution>
                        </pluginExecutions>
                    </lifecycleMappingMetadata>
                </configuration>
            </plugin>

        </plugins>
    </pluginManagement>
</build>

<profiles>
    <!-- ====================================================== -->
    <!-- A D O B E   P U B L I C   P R O F I L E                -->
    <!-- ====================================================== -->
    <profile>
        <id>adobe-public</id>

        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>

        <properties>
            <releaseRepository-Id>adobe-public-releases</releaseRepository-Id>
            <releaseRepository-Name>Adobe Public Releases</releaseRepository-Name>
            <releaseRepository-URL>https://repo.adobe.com/nexus/content/groups/public</releaseRepository-URL>
        </properties>

        <repositories>
            <repository>
                <id>adobe-public-releases</id>
                <name>Adobe Public Repository</name>
                <url>https://repo.adobe.com/nexus/content/groups/public</url>
                <releases>
                    <enabled>true</enabled>
                    <updatePolicy>never</updatePolicy>
                </releases>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </repository>
        </repositories>

        <pluginRepositories>
            <pluginRepository>
                <id>adobe-public-releases</id>
                <name>Adobe Public Repository</name>
                <url>https://repo.adobe.com/nexus/content/groups/public</url>
                <releases>
                    <enabled>true</enabled>
                    <updatePolicy>never</updatePolicy>
                </releases>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </pluginRepository>
        </pluginRepositories>
    </profile>
</profiles>

<!-- ====================================================================== -->
<!-- D E P E N D E N C I E S                                                -->
<!-- ====================================================================== -->
<dependencyManagement>
    <dependencies>
        <!-- Commons -->
        <dependency>
            <groupId>com.google.code.findbugs</groupId>
            <artifactId>jsr305</artifactId>
            <version>2.0.0</version>
            <scope>provided</scope>
        </dependency>

        <!-- Adobe Experience Manager -->
        <!--
            AEM APIs; make sure to not move this bundle upper in the list so that newer APIs available in AEM but not in the Uber
            Jar can be used as dependencies.
         -->
        <dependency>
            <groupId>com.adobe.aem</groupId>
            <artifactId>uber-jar</artifactId>
            <version>6.3.2</version>
            <classifier>apis</classifier>
            <scope>provided</scope>
        </dependency>

        <!-- Apache Sling -->
        <dependency>
            <groupId>org.apache.sling</groupId>
            <artifactId>org.apache.sling.models.api</artifactId>
            <version>1.3.0</version>
            <scope>provided</scope>
        </dependency>

        <!-- OSGi annotations for DS and metatype -->
        <dependency>
            <groupId>org.osgi</groupId>
            <artifactId>osgi.annotation</artifactId>
            <version>6.0.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.osgi</groupId>
            <artifactId>osgi.core</artifactId>
            <version>6.0.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.osgi</groupId>
            <artifactId>osgi.cmpn</artifactId>
            <version>6.0.0</version>
            <scope>provided</scope>
        </dependency>
        <!-- Logging Dependencies -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
            <scope>provided</scope>
        </dependency>
        <!-- Apache Sling Dependencies -->
        <dependency>
            <groupId>org.apache.sling</groupId>
            <artifactId>org.apache.sling.commons.osgi</artifactId>
            <version>2.4.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.sling</groupId>
            <artifactId>org.apache.sling.commons.johnzon</artifactId>
            <version>1.0.0</version>
            <scope>provided</scope>
        </dependency>

        <!-- javax.inject 1 -->
        <dependency>
            <artifactId>geronimo-atinject_1.0_spec</artifactId>
            <version>1.0</version>
            <groupId>org.apache.geronimo.specs</groupId>
            <scope>provided</scope>
        </dependency>

        <!-- Jackson -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.8.4</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.8.4</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.8.4</version>
            <scope>provided</scope>
        </dependency>
        <!-- JCR -->
        <dependency>
            <groupId>javax.jcr</groupId>
            <artifactId>jcr</artifactId>
            <version>2.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.jackrabbit</groupId>
            <artifactId>jackrabbit-jcr-commons</artifactId>
            <version>2.12.1</version>
            <scope>provided</scope>
        </dependency>

        <!-- Taglibs -->
        <dependency>
            <groupId>com.day.cq.wcm</groupId>
            <artifactId>cq-wcm-taglib</artifactId>
            <version>5.7.4</version>
            <scope>provided</scope>
        </dependency>

        <!-- Commons -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.5</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-collections4</artifactId>
            <version>4.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>commons-collections</groupId>
            <artifactId>commons-collections</artifactId>
            <version>3.2.2</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.adobe.cq</groupId>
            <artifactId>core.wcm.components.all</artifactId>
            <type>zip</type>
            <version>2.0.8</version>
            <scope>provided</scope>
        </dependency>

        <!-- Servlet API -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>

        <!-- Okta API-->
        <dependency>
            <groupId>com.okta.jwt</groupId>
            <artifactId>okta-jwt-verifier</artifactId>
            <version>${okta-jwt.version}</version>
        </dependency>
        <dependency>
            <groupId>com.okta.jwt</groupId>
            <artifactId>okta-jwt-verifier-impl</artifactId>
            <version>${okta-jwt.version}</version>
            <scope>runtime</scope>
        </dependency>

        <!-- Testing -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>${slf4j.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <version>2.7.22</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-api-mockito</artifactId>
            <version>1.6.4</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-module-junit4</artifactId>
            <version>1.6.4</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-core</artifactId>
            <version>1.6.4</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.wcm</groupId>
            <artifactId>io.wcm.testing.aem-mock</artifactId>
            <version>2.2.6</version>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.commons</groupId>
                    <artifactId>commons-imaging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.sling</groupId>
            <artifactId>org.apache.sling.testing.sling-mock</artifactId>
            <version>2.2.18</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.sling</groupId>
            <artifactId>org.apache.sling.servlet-helpers</artifactId>
            <version>1.1.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.sling</groupId>
            <artifactId>org.apache.sling.i18n</artifactId>
            <version>2.4.4</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<!--
    Deploy to the Maven Repositories using WebDAV URLs. This enables abstracting
    the real location of the repositories and better access control. Finally
    it mirrors read and write operations through the same mechanism.
    NOTE: To use these dav: URLs, the WebDAV extension to Maven Wagon must
    be declared in the build section above.
-->
<distributionManagement>
    <repository>
        <id>${releaseRepository-Id}</id>
        <name>${releaseRepository-Name}</name>
        <url>${releaseRepository-URL}</url>
    </repository>
    <snapshotRepository>
        <id>${snapshotRepository-Id}</id>
        <name>${snapshotRepository-Name}</name>
        <url>${snapshotRepository-URL}</url>
        <uniqueVersion>false</uniqueVersion>
    </snapshotRepository>
</distributionManagement>
`

from okta-jwt-verifier-java.

bdemers avatar bdemers commented on August 24, 2024

Thanks @guangweiyao!

Can you stick this in minimal GitHub project that shows the problem? from there we can comment or submit a PR with a potential fix/idea?

from okta-jwt-verifier-java.

guangweiyao avatar guangweiyao commented on August 24, 2024

@bdemers I created this sample project with same issue after I deployed the code in AEM 6.3, see attached.
https://github.com/guangweiyao/okta-sample-app
Screen Shot 2019-07-26 at 3 27 43 PM

from okta-jwt-verifier-java.

bdemers avatar bdemers commented on August 24, 2024

The repo looks empty now ? (GitHub problem)?
I was able to take a quick look at the jar in the core module
I was expecting the felix plugin/bnd to copy the com.okta.jwt classes into that bundle. I know I've seen this in other places (though I'm no OSGI expert)

from okta-jwt-verifier-java.

bdemers avatar bdemers commented on August 24, 2024

Have you tried tweaking the bundle config? import/export settings?

from okta-jwt-verifier-java.

guangweiyao avatar guangweiyao commented on August 24, 2024

Please try now, I just re-pushed. I tried tweaking the maven-bundle-plugin, but was not successful. like the Import-Package, Embed-Transitive or the Embed-Dependency tags, not sure if i missed anything.

from okta-jwt-verifier-java.

guangweiyao avatar guangweiyao commented on August 24, 2024

@bdemers I found a way to convert the jar files into osgi bundle via this eclipse plugin, but I am getting error in the loadService method of JwtVerifiers, specifically on line 57 StreamSupport.stream, it's throwing IllegalStateException. Any thoughts? Does the stream service method work in OSGI container? OSGI has specific way to load class.

The full exception I am getting is:
java.lang.IllegalStateException: No interface com.okta.jwt.AccessTokenVerifier$Builder implementation found on the classpath. Have you remembered to include the okta-jwt-verifier-impl.jar in your runtime classpath?

from okta-jwt-verifier-java.

bdemers avatar bdemers commented on August 24, 2024

@guangweiyao Cool! getting closer
Did you do the same for the -impl module too?
https://search.maven.org/artifact/com.okta.jwt/okta-jwt-verifier-impl/0.4.0/jar
The implementation is found using a ServiceLoader, so IIRC, OSGI shouldn't have a problem pulling that in assuming it can find it based on the imports/exports of your package.

Please keep us posted!

from okta-jwt-verifier-java.

zahidmak avatar zahidmak commented on August 24, 2024

@guangweiyao , were you able to resolve this issue? I am in the same boat and would appreciate if you can share the solution if you reached one.

from okta-jwt-verifier-java.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.