Skip to content
 
 

Repository files navigation

# NexU

To fill in the gap left by the demise of Java Applets to communicate with smartcards, 
Nowina has developed an innovative, open-source multi-browser multi-platform remote 
signature tool called NexU.

## Overview 

http://nowina.lu/solutions/java-less-browser-signing-nexu/

# INFORMATION ABOUT THIS FORK

The purpose of this fork is to provide caching ability for user entered data, for the length of the signing session
Features:
* caches entered password for the duration of a single session
* caches selected product for the duration of a single session
* created InnoSetup script and incorporated the setup package build process in the Maven POM file for nexu-standalone project
* added flag to be able to bypass product/token selection dialog, if exactly one card was found (as if the user selected it)

NB: ...\nexu-bundle\src\main\resources\inno-setup-script.iss is a handy script that creates a setup package with InnoSetup.
InnoSetup has to be installed on the development machine. When building nexu-bundle, the following extras have been added in the fork:
1) additional Maven targets, win32 and win64 that bundle nexu with 32-bit and 64-bit JRE respectively (have to change target and build two times)
2) exec-maven-plugin that runs inno-setup-script.iss during package phase of Maven build - the result is in \target\nexu\nexu\inno directory

The install package will install NexU and place it into Windows Startup folder.

How to debug: (https://github.com/nowina-solutions/nexu/issues/31)
[edit] I figured out that nexu-standalone is not supposed to run as a jar - it is supposed to be referenced in nexu-app, and nexu-app should be launched with java -jar ... command - this way the resources referenced in nexu-standalone are relative to root classpath, which is nexu-app - anyway, the references make sense then. - nexu-app SHOULD NOT be referenced by nexu-standalone of course, because this creates cyclic reference, and doesn't make sense anyway.

[edit] The above way of running nexu seems to create a problem for Netbeans - because nexu-app uses Maven shade plugin to create the final JAR, Netbeans doesn't seem to detect the Main Class for execution, which is actually situated in a dependency artifact, nexu-standalone, and is appended to the MANIFEST.MF during the creation of the shaded JAR... the only way I found to be able to debug NexU this way was to start up NexU from command line, supplying JDWP options to Java, and then to attach the Netbeans debugger to this process:

(attention: java.exe should belong to x64 or x86 version of JDK, depending on what kind of driver was installed)
"C:\Program Files\Java\jdk1.8.0_251\bin\java.exe" -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -jar nexu-app-shaded.jar

take care of the project version - when it does not end with -SNAPSHOT then Maven will try to find artifacts in the remote repository first and will fail
when compiling with netbeans, should explicitly change properties->build->compile JDK to 1.8 because higher JDK would need inclusion of extra modules

full build order: nexu-api, nexu-model, nexu-util, nexu-core, nexu-standalone, nexu-rest-plugin, nexu-https-plugin, nexu-multi-user-support, nexu-windows-keystore-plugin, nexu-app, nexu-bundle
usual build order: nexu-api (if e.g. added AppConfig setting), nexu-core (if e.g. changed one of the Operation's that take part in the Flow), nexu-standalone, nexu-app, nexu-bundle -
carefull with that, because a change in nexu-standalone will not be detected automatically when building nexu-bundle (e.g. in netbeans)
store.xml is in standalone

to change version in all projects:
cd nexu-master-modified
c:\tools\apache-maven-3.6.3\bin\mvn versions:set -DnewVersion=1.23-modified-03-SNAPSHOT
c:\tools\apache-maven-3.6.3\bin\mvn versions:commit

to build win32 & win64 versions, always do clean & build, and check that the final setup packages have different sizes.

Also, if you care to compile nexu to be able to debug it, egiz/smcc dependency is missing - to workaround this problem, just run install_as_mvn_artifact script, which installs the whole nexu.jar as the missing dependency (it contains the necessary classes inside)
IMPORTANT: before installing nexu.jar as artifact, copy it to e.g. nexu1.jar and strip it of all class files apart from egiz ones

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages