GithubHelp home page GithubHelp logo

openequella / openequella-admin-console-package Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 5.0 436 KB

Project to build a stand-alone admin console (launcher) package

License: Other

Java 98.04% Shell 1.63% Batchfile 0.33%

openequella-admin-console-package's Introduction

openEQUELLA

openEQUELLA CI Conventional Commits

openEQUELLA is a digital repository that provides a single platform to house your teaching and learning, research, media, and library content.

Builds for each openEQUELLA Release can be found on the Releases page.

(NOTE: The current stable version - starting from 2019.1 - is built from master, where as active development is undertaken on the repository's default branch develop. Therefore develop is considered the project's 'unstable' branch.)

The project's homepage and documentation can be found at https://openequella.github.io/.

If you would like to contribute to openEQUELLA please review the Contributor Guidelines - which also include details of how to get in touch. We welcome pull requests and issue reports. And if you'd like to assist with documentation, please head on over to the documentation repository at https://github.com/openequella/openEQUELLA.github.io.

You can find further information for developers wishing to work with the source code in Contributor Guidelines.

Optional code

There is functionality that could not be included into the core openEQUELLA code repository, but based on your business needs, may be appropriate to include.

Notice

openEQUELLA remains a widely used digital repository platform, with institutions across the world benefiting from the highly configurable nature of the solution. Unlike other open source platforms that benefit from significant community-sourced development, as it currently stands, development of openEQUELLA is only performed by one party, Edalex. As such, in order to ensure efficiencies in the development process that will directly increase the velocity of development initiatives, Edalex will transition to using internal tools to manage the development process. Coinciding with the release of major versions, Edalex will push the developed code back into the open source project to ensure that institutions that rely on the open source code, can compile and aggregate their own builds of the platform. The project continues to welcome community involvement and contributions, and if community-sourced development does occur, the Edalex team will continue to manage the pull request process to ensure code commits are incorporated into the platform.

As stated above, given how the platform is currently developed, the biggest impact of this change will be the reduction in visible activity within this space. Rest assured, the Edalex team remains very committed to the ongoing enhancement of the platform. For more information about this change or to better understand the openEQUELLA roadmap, please contact [email protected].

openequella-admin-console-package's People

Contributors

abidingotter avatar cbeach47 avatar christianmurphy avatar edalex-ian avatar edalex-yinzi avatar penghaizhang avatar renovate-bot avatar renovate[bot] avatar sammyisconfused avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openequella-admin-console-package's Issues

Chore: Add gradle plugin to generate NOTICE.md automatically

This came up as a concern during #63 - so whilst Renovate works properly for updating dependencies, the NOTICE.md file does not change when dependencies do, it has to be maintained manually.

Generally, NOTICE files are automatically generated - thankfully since this is a gradle project there are definitely lots examples of plugins we could use to achieve this:

It would be good to implement one of these so that NOTICE.md does not need to be maintained manually.

Admin Console in Windows can't handle certain characters in file path

A client has noted that the admin console will not launch if there is an ampersand (&) in the path. I've tested other characters and the only other ones I found were:

semicolon: ;
caret: ^

The error that I receive is: Windows cannot find \jdk8u242-b08-jre\bin\javaw. Make sure you've typed the name correctly, then try again.

I think that it should be tested for non-english characters (accented characters, etc).

Thanks

Document how to add additional SSL certificates

Due to the admin console package including it's own JRE, if a user needs a custom SSL certificate then they need to include it in the bundled JRE's keystore. This should be documented, and currently seems as though the README.md would be as good a place as any - other than maybe also over on openequella.

Feature Request - Allow the admin console to save logins

Could we have the admin console save logins for each configured host. The normal username/password prompt would be auto-filled in this case. And if we wished to login as a different user, we'd just fill in the new credentials to override whatever have been saved.

Admin console not recognising Sectigo SSL cert?

I can't connect to Equella instance with Linux admin console 1.1.0 or 1.2.0 (same errors for both versions).

Java CLI output:

...
[SwingWorker-pool-1-thread-1] DEBUG org.apereo.openequella.adminconsole.util.ExecUtils - Exec [/path/to/equella/admin-console-package-for-linux-1.2.0/jdk-11.0.18+10-jre/bin/java, -cp, adminconsole.jar, -Djnlp.ENDPOINT=https://equella.monash.edu/more/, -Dplugin.cache.dir=/home/marcus/openequella-admin-console/ad1cffbf-f90e-4c16-a4db-989ec02e147e/cache, -DSERVER_NAME=Equella (More), com.tle.admin.boot.Bootstrap]
Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at com.tle.admin.boot.Bootstrap.run(Bootstrap.java:129)
	at com.tle.admin.boot.Bootstrap.main(Bootstrap.java:71)
Caused by: java.lang.RuntimeException: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at com.tle.admin.boot.Bootstrap.login(Bootstrap.java:180)
	at com.tle.admin.boot.Bootstrap.run(Bootstrap.java:112)
	... 1 more
Caused by: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at java.base/sun.security.ssl.Alert.createSSLException(Unknown Source)
	at java.base/sun.security.ssl.TransportContext.fatal(Unknown Source)
	at java.base/sun.security.ssl.TransportContext.fatal(Unknown Source)
	at java.base/sun.security.ssl.TransportContext.fatal(Unknown Source)
	at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(Unknown Source)
	at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.onCertificate(Unknown Source)
	at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.consume(Unknown Source)
	at java.base/sun.security.ssl.SSLHandshake.consume(Unknown Source)
	at java.base/sun.security.ssl.HandshakeContext.dispatch(Unknown Source)
	at java.base/sun.security.ssl.HandshakeContext.dispatch(Unknown Source)
	at java.base/sun.security.ssl.TransportContext.dispatch(Unknown Source)
	at java.base/sun.security.ssl.SSLTransport.decode(Unknown Source)
	at java.base/sun.security.ssl.SSLSocketImpl.decode(Unknown Source)
	at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(Unknown Source)
	at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
	at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
	at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)
	at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown Source)
	at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(Unknown Source)
	at com.tle.core.remoting.SessionLogin.postLogin(SessionLogin.java:44)
	at com.tle.admin.boot.Bootstrap.tryLogin(Bootstrap.java:190)
	at com.tle.admin.boot.Bootstrap.login(Bootstrap.java:166)
	... 2 more
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at java.base/sun.security.validator.PKIXValidator.doBuild(Unknown Source)
	at java.base/sun.security.validator.PKIXValidator.engineValidate(Unknown Source)
	at java.base/sun.security.validator.Validator.validate(Unknown Source)
	at java.base/sun.security.ssl.X509TrustManagerImpl.validate(Unknown Source)
	at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(Unknown Source)
	at java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)
	... 22 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at java.base/sun.security.provider.certpath.SunCertPathBuilder.build(Unknown Source)
	at java.base/sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)
	at java.base/java.security.cert.CertPathBuilder.build(Unknown Source)
	... 28 more
[SwingWorker-pool-1-thread-1] INFO org.apereo.openequella.adminconsole.util.ExecUtils - Exec finished with status 1

Certificate details:

subject=C = AU, ST = Victoria, O = Monash University, CN = equella.monash.edu
issuer=C = GB, ST = Greater Manchester, L = Salford, O = Sectigo Limited, CN = Sectigo RSA Organization Validation Secure Server CA

CI is no longer running for the admin console package

Since commit 28f68e9 we have no CI build for the admin-console-package, which means we can't safely test any fixes on it (as testers require building the package from source).

This is perhaps caused by the policy changes brought in by Travis recently, potentially we are no longer eligible for Travis builds.

This should be fixed as soon as possible, so that we might test and build next release v1.2.0.

Cannot save or load Collection configuration with DRM Page

In the admin console v1.3.0 when trying to save or load a collection that has a DRM page attached under the Wizard/Page tab the following error is thrown by Java.

com.thoughtworks.xstream.converters.ConversionException: No converter available
---- Debugging information ----
message : No converter available
type : com.dytech.edge.wizard.beans.DRMPage$NetworkSet
converter : com.thoughtworks.xstream.converters.reflection.SerializableConverter
message[1] : Unable to make private void java.util.TreeSet.readObject(java.io.ObjectInputStream) throws java.io.IOException,java.lang.ClassNotFoundException accessible: module java.base does not "opens java.util" to unnamed module @33bc72d1
converter[1] : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
message[2] : Unable to make field private transient java.util.NavigableMap java.util.TreeSet.m accessible: module java.base does not "opens java.util" to unnamed module @33bc72d1

<Stack>

The error appears to be a missing custom serializer for the NetworkSet child object on the DRMPage object. There is no issue in version 1.2.1 (previous version we were using)

This is an issue for new and existing Collection/s and other collection/s that do not have the DRMPage present are able to be saved and loaded as expected.

image

Error launching admin console in 2019.1.1

The error happens after you fill in your login details in the admin console launcher.

On stable.dev (running 2019.1.1) you get an java.io.IOException: can't retrieve modification date for resource error upon launching the admin console.

Could it maybe have something to do with the new semantic versioning change in 2019.1.1?

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

github-actions
.github/workflows/ci.yaml
  • actions/checkout v4@b4ffde65f46336ab88eb53be808477a3936bae11
  • actions/cache v4
  • actions/setup-java v4
  • actions/upload-artifact v4.3.1
  • actions/upload-artifact v4.3.1
  • softprops/action-gh-release v2
gradle
gradle.properties
  • junit:junit 4.13.2
settings.gradle
build.gradle
  • com.github.hierynomus.license 0.16.1
  • org.slf4j:slf4j-api 2.0.13
  • com.fasterxml.jackson.core:jackson-databind 2.17.0
  • org.jasypt:jasypt 1.9.3
  • org.slf4j:slf4j-simple 2.0.13
gradle-wrapper
gradle/wrapper/gradle-wrapper.properties
  • gradle 8.7

  • Check this box to trigger a request for Renovate to run again on this repository

Feature Request - Spawn multiple admin consoles from the same launcher

Currently, running the Admin Console package starts the Administration Console Launcher. From there we either pick a saved config, or create a new one. When we launch a configuration, the Admin Console for that config starts up and the launcher disappears. It only reappears if the admin console is terminated. The only way to launch multiple admin consoles is to invoke multiple launchers.

Could we instead just launch the Administration Console Launcher once and let it persist so that we can launch multiple Admin Consoles from the same Launcher instance?

Windows package is unsigned

The Admin Console Package for Windows is unsigned. Whilst by default Windows will ask for consent to run unknown publisher programs, it is possible to set up Windows Firewall to block unsigned programs outright. This could potentially be problematic for more locked down operating environments.

We should look into potentially signing this package for the next release, as well as the Mac and Linux equivalents.

openEQUELLA language preferences

hello,
is there a way to change language preferences for a user other than from my preferences page
i need to add a language switcher on the navigation bar for all pages.
is there a way to do this?
also i need when user comes from my site to equella to have the language persistent for example if he/she in moodle are on arabic and go to openequella need to load the arabic lang packs
thankx in adnvace

Admin Console cannot integrate with SSO

There is no ability to integrate the Admin Console with to work with the configured SSO setups that openEQUELLA uses (Shibboleth, ADFS, etc). This poses a problem for those clients who have policies against creating local accounts.

Launcher JDK doesn't update SSL certificates?

We recently updated our SSL certificate for an oE instance at https://vault.cca.edu and it broke the admin launcher (see the error stacktrace at the bottom of this issue). After reading about certificates and Java, trying a few failed approaches, I finally figured out how to fix it:

  1. download the public cert from the website
  2. run $PATH_TO_ADMIN_LAUNCHER/jdk8u242-b08-jre/Contents/Home/bin/keytool -import -file ~/Downloads/downloaded.cer -alias $ALIAS -keystore $PATH_TO_ADMIN_LAUNCHER/jdk8u242-b08-jre/Contents/Home/lib/security/cacerts (I'm on a Mac)
  3. Enter the default keystore password "changeit" at the prompt
  4. Type "yes" at the "Trust this certificate?" prompt

Does the JVM packaged with the launcher app really not keep its certs up to date? Would I be better off rewriting the launcher shell script to point to a system JVM? If we downloaded a fresh version of the launcher, would that work? It took a fair amount of time for me to fix this certificate error and I'm not sure how to help my coworkers fix it without running the commands for each person myself, not everyone is capable of navigating the command line.

For the record, the things I tried that did not work were adding -Dcom.sun.net.ssl.checkRevocation=false to the launcher shell script (is this an outdated setting? Maybe there's a correct one under javax.net.ssl) and trying a few different settings in MacOS's Java preferences (which I assume relate to a different JVM than the app launcher's?).

Error message:

Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at com.tle.admin.boot.Bootstrap.run(Bootstrap.java:129)
	at com.tle.admin.boot.Bootstrap.main(Bootstrap.java:71)
Caused by: java.lang.RuntimeException: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at com.tle.admin.boot.Bootstrap.login(Bootstrap.java:180)
	at com.tle.admin.boot.Bootstrap.run(Bootstrap.java:112)
	... 1 more
Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
	at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1946)
	at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:316)
	at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:310)
	at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1639)
	at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:223)
	at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1037)
	at sun.security.ssl.Handshaker.process_record(Handshaker.java:965)
	at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1064)
	at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1367)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1395)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1379)
	at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
	at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
	at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1340)
	at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1315)
	at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:264)
	at com.tle.core.remoting.SessionLogin.postLogin(SessionLogin.java:44)
	at com.tle.admin.boot.Bootstrap.tryLogin(Bootstrap.java:190)
	at com.tle.admin.boot.Bootstrap.login(Bootstrap.java:166)
	... 2 more
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:450)
	at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:259)
	at sun.security.validator.Validator.validate(Validator.java:262)
	at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:330)
	at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:237)
	at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:132)
	at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1621)
	... 17 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)
	at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)
	at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280)
	at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:445)
	... 23 more
16693 [SwingWorker-pool-1-thread-1] INFO org.apereo.openequella.adminconsole.util.ExecUtils - Exec finished with status 1

Support launching when not in the script's directory

It would appear that you need to be in the same directory as the script in order to launch it. For example:

$ /opt/oeq-admin-console/Linux-launcher.sh 
/opt/oeq-admin-console/Linux-launcher.sh: line 4: /home/someuser/jdk8u212-b03-jre/bin/java: No such file or directory

Improve the error messaging

If you configure the console tool to use a proxy server it refuses to use the proxy server and always connected directly to the configured openEQUELLA server. When trying to launch the admin console from the tool, after clicking the launch button it would ask for credentials for the openEQUELLA server, disappear and the return to the launch tool with no error, no message or any indication of what had happened. After adding our internal CA certs to the java keystore for the admin console tool, it was finally able to connect successfully to the upgraded instance. A simple error message from the tool would have been nice to help troubleshoot this issue.

Cannot launch the windows-launcher.bat file from a directory containing space characters

Hi there,

I've attempted to install the Windows launcher to the Program Files directory (C:\Program Files\Equella\ specifically), but the .bat file does not handle space characters in the file path.

Workaround: install to a file path not containing space characters, but this is not ideal for those that like to keep all executables within the same directory.

Admin console fails to launch when attempting to connect to openEQUELLA over HTTPS

@miraboureslan originally opened this in issue openequella/openequella.github.io#82

I quote:

we are running openequella with proxy for SSL
we can access the institution without any errors but cant access the administration console
port used:8443
when connect to the admin console we reach the popup to enter username and password
after that the jars the should be located in the cache folder are not getting downloaded
to the launcher doesnot display anything and we can see in the task manager that it is still running

Version checking

The intention going forward is that this package can be released independent of oEQ. As a result, I think it would be useful for it to have a version check at start-up with which users can be notified if there's a newer version available.

I suggest to do version checking based on querying the GitHub releases: https://developer.github.com/v3/repos/releases/

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.