Giter VIP home page Giter VIP logo

h-mdm / hmdm-server Goto Github PK

View Code? Open in Web Editor NEW
258.0 24.0 121.0 3.69 MB

Mobile Device Management System for Android: web control panel. Manage Android devices, install and update apps, get device info. See website for more features!

Home Page: https://h-mdm.com

License: Apache License 2.0

Java 50.64% Shell 0.77% JavaScript 34.11% HTML 12.87% CSS 1.57% Batchfile 0.04%
mdm mobile-device-management android-mdm mobile-management enrollment

hmdm-server's Introduction

Headwind MDM - a platform for corporate Android applications

Headwind MDM is a Mobile Device Management platform for Android devices, designed for corporate app developers and IT managers.

(c) 2020 h-mdm.com

https://h-mdm.com

Features

  • Enrollment to Android 7+ devices through scanning a QR-code
  • Work in "Application mode" without enrollment
  • Customize the mobile desktop design and available applications
  • Automatic deployment of applications through the web panel
  • Mobile device management: groups, configurations, device status
  • Setup the available mobile device capabilities (GPS, Wi-Fi, Bluetooth etc.)
  • Manage the automatic OS update mode on the mobile device
  • Extensible platform design allowing the custom plugin development
  • Collection of application logs in the web panel
  • Centralized configuration of corporate applications

The Enterprise edition of the platform has more features:

  • Restriction of mobile user functions ("kid's shell" for corporate users)
  • Disable to change the mobile device settings
  • Kiosk mode (COSU, single-task mode)
  • Sending images from mobile device to server
  • Cloud-based or self-hosted server setup
  • Premium support of enterprise users
  • Custom plugin development services

The enterprise edition may be ordered on the project website.

Quick start

Headwind MDM control panel is cross-platform (it is written in Java and uses Tomcat web server). However the best OS for the deployment of Headwind MDM control panel is Ubuntu Linux.

  • Clone the project and build it (see BUILD.txt for details)
  • Install the web panel to the server by using the installer script
  • Open the web panel and follow the hints to generate a QR code
  • Perform the factory reset on your Android device, tap 7 times on the welcome screen
  • Follow the instructions to scan a QR code and enroll the mobile agent

Contributing

Headwind MDM is a platform making corporate app development easier. We are happy to get more powerful plugins related to mobile device management.

Please contact us on the project website if you'd like to:

  • develop a public plugin for Headwind MDM
  • suggest a feature
  • order the custom development
  • report a bug

hmdm-server's People

Contributors

dependabot[bot] avatar h-mdm avatar isvisv avatar loisspitz avatar romanhawk avatar squza avatar vmayorow avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hmdm-server's Issues

hmdm server isn't showing interface anymore

I'm runing it on ubuntu 20.04 using tomcat9 and I don't have any errors in my log file under /var/log/tomcat9/catalina.year-month-day.log and catalina.out

I can access the site but it just is a a blank page.
also service-status looks fine. is there any furthe rway to debug?

Build Failure

This is a fresh Ubuntu 20.04 install. Following the instructions here: https://h-mdm.com/advanced-web-panel-installation/

Running the command "mvn install" from step 3 results in the following error:

[INFO] MDM Server ......................................... FAILURE [ 0.174 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.885 s
[INFO] Finished at: 2023-01-27T03:32:04-06:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:2.7:copy-resources (copy-resources) on project server: Error loading property file 'build.properties': /home/mdm/hmdm-server/server/build.properties -> [Help 1]

It looks like this may be a duplicate issue - #53
However, the BUILD.txt mentions a tomcat8 install. There is no installation candidate for tomcat8 in Ubuntu 20.04.

I did run - cp server/build.properties.example server/build.properties
but during the install process via mvn install, I get the following error messages:

[INFO] --- frontend-maven-plugin:1.7.6:npm (npm install) @ server ---
[INFO] Running 'npm install' in /home/mdm/hmdm-server/server/webtarget
[WARNING] npm WARN [email protected] No description
[WARNING] npm WARN [email protected] No repository field.
[WARNING] npm WARN [email protected] No license field.
[ERROR]
[INFO] added 273 packages from 192 contributors and audited 272 packages in 6.781s
[INFO] found 63 vulnerabilities (4 low, 21 moderate, 32 high, 6 critical)
[INFO] run npm audit fix to fix them, or npm audit for details
[INFO]

Also, can we change the default ports? Can we use a non-commercial certificate that is not Let's Encrypt? The port 80 requirement is a serious hindrance as other services use that port and we are ok with using a self-signed certificate as we have security measures in place to mitigate the risk of a MiTM attack.

install error

I followed the steps on this website(https://h-mdm.com/advanced-web-panel-installation/) to install it.
My OS_Version:DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS"
There are no errors in the previous steps, only errors occurred when the script ./hmdm_install.sh was executed.
image
All configurations use the default settings, only the configuration item Domain name or public IP is changed to my IP address.
But after the script was executed, such an error :

Deploying hmdm-3.28.4-os.war to Tomcat: /var/lib/tomcat9/webapps//hmdm.war
........................................................................................................................
ERROR: failed to deploy WAR file!
Please check /var/lib/tomcat9/logs/catalina.out for details.

image
And i cann't found the file /var/lib/tomcat9/logs/catalina.out,but there is a file named catalina.2020-12-23.log in this floder,and Its content is like this.I don't know what happened, I really need your help,thank you verymuch.
root@zz-sm-mdm:/home/yule/hmdm-install# cat /var/lib/tomcat9/logs/catalina.2020-12-23.log
23-Dec-2020 00:39:16.216 INFO [http-nio-8080-exec-15] org.apache.coyote.http11.Http11Processor.service Error parsing HTTP request header
Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level.
java.lang.IllegalArgumentException: Invalid character found in method name [0xff0xf40xff0xfd...]. HTTP method names must be tokens
at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:417)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:261)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
23-Dec-2020 00:46:53.278 INFO [Catalina-utility-1] org.apache.catalina.startup.HostConfig.undeploy Undeploying context [/hmdm]
23-Dec-2020 00:47:03.283 INFO [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployDescriptor Deploying deployment descriptor [/etc/tomcat9/Catalina/localhost/hmdm.xml]
23-Dec-2020 00:47:06.759 INFO [Catalina-utility-2] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
23-Dec-2020 00:47:12.131 INFO [Catalina-utility-2] nonapi.io.github.classgraph.classloaderhandler.lifecycle.ServletLifeCycleListener.contextInitialized Servlet context initialized
23-Dec-2020 00:47:14.103 INFO [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployDescriptor Deployment of deployment descriptor [/etc/tomcat9/Catalina/localhost/hmdm.xml] has finished in [10,819] ms
image

Can't access web interface

I'm having issues with accessing the web interface after following the installation instructions.

I have installed and checked if Tomcat9 is working properly with the command: telnet localhost 8080
I have built the source code with the command: mvn package
I also created the PostgreSQL user(hmdm) and database(hmdm).
After running the script with root, there were no error messages. I tried connecting to the domain I have typed in but it displays connection refused on Chrome.

Is there any log file I can send for you to look at?

install error

fresh install of ubuntu 18.04 in a vm. ran all the steps in BUILD.txt
when running install script, first error I get is:

root@mdm-1:~/hmdm-server# ./hmdm_install.sh
ls: cannot access 'hmdm*.war': No such file or directory

then a bit later I get:

root@mdm-1:~/hmdm-server# ./hmdm_install.sh
ls: cannot access 'hmdm*.war': No such file or directory
Please choose the installation language (en/ru) [en]: en

PostgreSQL database setup
=========================
Make sure you've installed PostgreSQL and created the database:
# CREATE USER hmdm WITH PASSWORD 'topsecret';
# CREATE DATABASE hmdm WITH OWNER=hmdm;

PostgreSQL host [localhost]: localhost
PostgreSQL port [5432]: 5432
PostgreSQL database [hmdm]: hmdm
PostgreSQL user [hmdm]: hmdm
PostgreSQL password: *****

File storage setup
==================
Please choose where the files uploaded to Headwind MDM will be stored
If the directory doesn't exist, it will be created

Headwind MDM directory [/opt/hmdm]: /opt/hmdm

Web application setup
=====================
Headwind MDM requires access from Internet
Please assign a public domain name to this server

Protocol (http|https) [http]: http
Domain name or public IP (e.g. example.com): <mypublicdomain>
Port (leave empty for default ports 80 or 443): 8080
Project path on server or ROOT [/hmdm]: /hmdm
Tomcat virtual host [localhost]: localhost

Ready to install!
Location on server: /opt/hmdm
URL: http://<mypublicdomain>:8080/hmdm
Is this information correct [Y/n]? y
Tomcat config file created: /var/lib/tomcat8/conf/Catalina/localhost//hmdm.xml
Deploying  to Tomcat: /var/lib/tomcat8/webapps//hmdm.war
cp: missing destination file operand after '/var/lib/tomcat8/webapps//hmdm.war'
Try 'cp --help' for more information.
............................................................
ERROR: failed to deploy WAR file!
Please check /var/lib/tomcat8/logs/catalina.out for details.

MQTT/Push Notifications not working with public address/domain

We tried adding an app with the admin panel to check if it installs as per what the GUI/docs suggest, but then unfortunately the app doesn't get installed on the client device nor does it actually receive any push notifications sent to it.

On further debugging, we went through the logs and realized that the binding of the MQTT connection itself threw an java.net.Exception with the domain name we were using publicly for our https server/admin panel. I tried using the public IP of our machine, it threw the same exception again.

Public address -

image

Public domain name -

image

However, when I instead used the server machine's private IP or localhost instead of the public IP/domain name the MQTT connection no longer throws an Exception.

image

But then we come back to the same issue of not being able to send push notifications to any of the setup devices, which is most likely because the client device isn't able to interact with the server at port 31000 of our server.

Our firewall does allow TCP connections at port 31000, but this issue still occurs unfortunately

image

We verified the public address and domain multiple times too, but they were the same once we used on our browser.

Our main ROOT.xml that we updated to vary the MQTT address/uri (with public address that does not work):

<?xml version="1.0" encoding="UTF-8"?>
<Context>
    
    <Resources cachingAllowed="false" />

    <!-- database configurations -->
    <Parameter name="JDBC.driver"   value="org.postgresql.Driver"/>
    <Parameter name="JDBC.url"      value="jdbc:postgresql://localhost:5432/hmdm"/>
            
    <Parameter name="JDBC.username" value="hmdm"/>
    <Parameter name="JDBC.password" value="topsecret"/>

    <!-- This directory is used to store uploaded app files, must be accessible for tomcat user -->
    <Parameter name="files.directory" value="/var/lib/tomcat9/work/files"/>

    <!-- URL used to open Headwind MDM control panel -->
    <Parameter name="base.url" value="https://ethosmdm.aa1technologies.com:8443"/>

    <!-- private / shared; shared can be used only in Enterprise solution -->
    <Parameter name="usage.scenario" value="private" />

    <!-- If set to 1, the device configuration request must be signed by a shared secret (setup in hash.secret and in the Android app) 
         0 or empty value does not require request signature which is less secure -->
    <Parameter name="secure.enrollment" value="0"/>
    <!-- A shared secret between mobile app and control panel. 
         Don't change this unless you know what you're doing -->
    <Parameter name="hash.secret" value="12345"/>

    <!-- This directory is used to store files by plugins, must be accessible for tomcat user -->
    <Parameter name="plugins.files.directory" value="/var/lib/tomcat9/work/plugins"/>

    <!-- Configuration for logging plugin, do not change this -->
    <Parameter name="plugin.devicelog.persistence.config.class" value="com.hmdm.plugins.devicelog.persistence.postgres.DeviceLogPostgresPersistenceConfiguration"/>

    <!-- Don't change this -->
    <Parameter name="role.orgadmin.id" value="2"/>

    <!-- Swagger Docs UI location -->
    <Parameter name="swagger.host" value="ethosmdm.aa1technologies.com:8443"/>
    <Parameter name="swagger.base.path" value="/rest"/>

    <Parameter name="initialization.completion.signal.file" value="/var/lib/tomcat9/work/hmdm_install_flag"/>

    <Parameter name="log4j.config" value="file:///var/lib/tomcat9/work/log4j-hmdm.xml"/>

    <Parameter name="aapt.command" value="aapt"/>

    <!-- MQTT notification service parameters -->
    <Parameter name="mqtt.server.uri" value="52.68.99.135:31000"/>

    <!-- Optional tag for delaying MQTT messages in milliseconds
     to avoid congestion when all devices are updating configuration at the same time -->
    <!-- <Parameter name="mqtt.message.delay" value="100"/> -->

    <!-- Fast device search by last characters, here's the length -->
    <Parameter name="device.fast.search.chars" value="5"/>

    <!-- Optional tag for MQTT authentication for more security
         (supported by Headwind MDM launcher v5.05 and above) -->
    <!-- <Parameter name="mqtt.auth" value="1"/> -->

    <!-- Email parameters are necessary for password recovery -->
    <Parameter name="smtp.host" value=""/>
    <Parameter name="smtp.port" value=""/>
    <Parameter name="smtp.ssl" value="0"/>
    <Parameter name="smtp.starttls" value="0"/>
    <Parameter name="smtp.username" value=""/>
    <Parameter name="smtp.password" value=""/>
    <Parameter name="smtp.from" value=""/>

</Context>

(The initial value for mqtt.server.uri - the domain name for the admin panel too throws the same error as public address along with the domain name instead)

Please help us out with setting up Push notifications/MQTT server correctly and do let us know if any other information is required

Thanks a lot for coming up with this open-source project, and for your valuable help and time!

Unable to install in Ubuntu server

MDM Server - Failure.

Total time: 3.523 s
[INFO] Finished at: 2022-07-29T11:51:52Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:2.7:copy-resources (copy-resources) on project server: Error loading property file 'build.properties': /home/ubuntu/hmdm-server/server/build.properties -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn -rf :server

SS2

bug - knox plugins not provided

On fresh install :

  • hmdm web panel version : 3.33.1
  • hmdm android app version : 3.59
  • OS : Ubuntu 20.04.2 LTS

Getting 500 (http code) on page for generete QR code hmdm/rest/public/qr/XXXXXX?size=309&deviceId=XXX

checking inspector look like knox dependency missing (getting an 404 http error code) : /hmdm/app/components/plugins/knox/knox.module.js

Unable to make changes to HMDM server after installation

I'm trying to make some changes to the HMDM installation that I have done by following the given guide:
https://h-mdm.com/advanced-web-panel-installation/

The installation works fine as expected, however whenever I try to make some changes to the code and rebuild the server using the same primary install script, the changes do not reflect on the server, even after using mvn clean install to always build. (Especially when I do it only for the front-end files under the webapp directory, containing images, html files, etc.)

I tried understanding Tomcat a bit in detail and found out that updating the WAR file and restarting the server ideally should do the work and created a script for rebuilding the server.

#!/bin/bash

# We are assuming the code to have been compiled at the given location here
SERVER_WAR=./server/target/launcher.war

TOMCAT_HOME=$(ls -d /var/lib/tomcat* | tail -n1)
TOMCAT_DEPLOY_PATH="ROOT"

echo "Overwriting old war file to new file..."

# 1
cp $SERVER_WAR $TOMCAT_HOME/webapps/$TOMCAT_DEPLOY_PATH.war

if [ $? -ne 0 ]
then
        echo ""
        echo "An unexpected error occurred while overwriting war file."
        exit 1
fi


# 2
chmod 644 $TOMCAT_HOME/webapps/$TOMCAT_DEPLOY_PATH.war

if [ $? -ne 0 ]
then
        echo ""
        echo "An unexpected error occurred while changing permissions of war file."
        exit 1
fi

# 3
sudo service tomcat9 restart

if [ $? -ne 0 ]
then
        echo ""
        echo "An unexpected error occurred while restarting war file."
        exit 1
fi

echo "Updating resources files..."

# Copying the resources files directly to the main ROOT directory probably isn't the right way
# of updating resources, since Tomcat somehow overwrites them with the old resources.
#
# However, if it's done after a while since the server starts, it updates (at least for as long as 
# we use it). Restarting the tomcat service overwrites it although.
sudo cp -rT ./server/src/main/webapp /var/lib/tomcat9/webapps/ROOT


if [ $? -ne 0 ]
then
        echo ""
        echo "An unexpected error occurred while copying source files to generated folder..."
        exit 1
fi

echo "Updated."

echo "The changes should soon show up in a while."

However, this doesn't seem to be the right way of doing it, since it has a lot of shortcomings (as mentioned in the comments present in the script)

Could you'll please help us out with some build script (that you'll use or is expected to be used) to directly reload changes or make changes and restart the server to make sure they reflect as they are expected to (even for the front-end files)?

Install error

Hi guys,
fresh debian 11
fresh installation
and still getting an "cp: missing destination file operand after '/var/lib/tomcat9/webapps/ROOT.war'" when launcing the install script.
database's fine
what am I doing wrong?

Phonenumer doesn't match even if correct

There is no way for me to enter the phonenumber without the panel thinking that it is a mismatch.

mismatch

The problem seems to come from the "+" which is entered in the number template

format

but the problem is, if I omit the "+" in the numberformat I still can not put it manually in the number field.
Then the mismatch is still the missing + at the beginning.

What I believe should happen is that the fixed numbers and symbols from the numberformat (for example +) should be added to the entered number and the complete sting should be matched against the string send from the app.

REST: Authentication: HTTP-Status 500

When using the default REST-API to retrieve a bearer token, I'll get a http-status 500 error.

POST https://..../hmdm/rest/public/jwt/login

Exception Server:
==> localhost.2020-08-14.log <==
14-Aug-2020 19:27:55.545 SEVERE [http-nio-8080-exec-5] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [default] in context with path [/hmdm] threw exception
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "id_token" (class com.hmdm.rest.json.Response), not marked as ignorable (3 known properties: "status", "message", "data"])
at [Source: (byte[])"{"id_token":"eyJh..."[truncated 2266 bytes]; line: 1, column: 14] (through reference chain: com.hmdm.rest.json.Response["id_token"])
at com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:61)
at com.fasterxml.jackson.databind.DeserializationContext.handleUnknownProperty(DeserializationContext.java:840)
at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:1179)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1592)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownVanilla(BeanDeserializerBase.java:1570)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:294)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:151)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4202)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3266)
at com.hmdm.plugins.audit.rest.filter.ResourceAuditor.getAuditLogRecord(ResourceAuditor.java:142)
at com.hmdm.plugins.audit.rest.filter.AuditFilter.doFilter(AuditFilter.java:131)
at com.hmdm.rest.filter.ApiOriginFilter.doFilter(ApiOriginFilter.java:52)
at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:121)
at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:133)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:615)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:818)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1626)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:832)

I think it's because of the audit plugin when writing a AuditLog. - The objekt is a serialized JWTToken an not a Response objekt.

ResourceAuditor.java Line 143
final Response response = objectMapper.readValue(content, Response.class);

Workaround:

  • Catch the exception in the client and read then the content and read the token

Add PrintSpooler and TaskManager as default application

Hy,

There are 2 default android applications, which are helpful to be added as default system applications:

com.android.printspooler - Print document
com.sec.android.app.launcher - Task manager

This would simplify first setup for new users.

Regards,
Stefan

java.sql.SQLException

An exception was caught and reported. Message: java.sql.SQLException: No suitable driver found for jdbc:postgresql://:/ at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:137)

Trouble with Letsencrypt

Running into a little trouble getting my deployment running. There's specifically an issue when running the letsencrypt-ssl.sh where the server fails the verification challenge and the script ends. This is strange because it is reachable over WAN unencrypted. I'm attaching the error. tomcat9 running on Ubuntu 20.04 live server with most up to date hmdm.
letsencrypterror

No status update on devices (All Red Dots)

Hello!

We have installed the community edition on our system. Everything is working fine and we don't have any issues. Apps can be deployed and everything works fine... but on the web interface every device state is red and we can't figure out why.
Bildschirmfoto 2022-01-11 um 15 21 35

It's important for us the see the battery state but this is also not updating.

Any ideas how to fix that?

QR code and ID issue

Specification:

  • serving using http
  • ubuntu server
  1. Having error with devices QR and Configuration QR codes when i click to show them. The error are as below.
    This site can’t be reached
    refused to connect.
  2. ID is not registered when i specify the Device Number (Portal) as the ID in the mobile app.
    It seems like some configuration error?

File-upload -> filepath -> can't save config

When there is already a file on the mdm-server and I want to use it by defining its url it won's save the modified configuration so I need to reupload the same file to make it work.

On dashboard All color dot is red

Detail :

Hi, I've successfully configure my Headwind MDM using a custom docker image based on this one : https://github.com/alteroo/headwind-mdm-docker.git
(I've just add the possibility to change port, I'll made a PR when I've got i work)

But on the dashboard, I can't get any info about the device.
I've set logs for my device but nothing come to me.

Capture d’écran 2021-02-03 à 10 30 53

Device info :

Android device : Lenovo Tab M10+
Android version : Android 10

I've used the QRCode at initial conf of the device.
I can install apps, but can't lock status bar. I want to dissallow user to access to the settings page.

Here some logs :

2021-02-02 20:16:23 [INFO] com.hmdm.persistence.ConfigurationDAO : Base URL: http://mdm.hypacosmos.com:/hmdm
[HMDM-INITIALIZER]: Application initialization was successful
[HMDM-INITIALIZER]: Created a signal file for application initialization completion: /hmdm_install_flag
2021-02-02 20:16:23 [ERROR] com.hmdm.notification.guice.module.NotificationMqttTaskModule : Failed to create MQTT broker service
java.io.IOException: Failed to bind to server socket: mqtt://mdm.hypacosmos.com:31000 due to: java.net.BindException: Cannot assign requested address (Bind failed)
	at org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:34)
	at org.apache.activemq.transport.tcp.TcpTransportServer.bind(TcpTransportServer.java:146)
	at org.apache.activemq.transport.tcp.TcpTransportFactory.doBind(TcpTransportFactory.java:62)
	at org.apache.activemq.transport.TransportFactorySupport.bind(TransportFactorySupport.java:40)
	at org.apache.activemq.broker.BrokerService.createTransportConnector(BrokerService.java:2520)
	at org.apache.activemq.broker.BrokerService.addConnector(BrokerService.java:339)
	at org.apache.activemq.broker.BrokerService.addConnector(BrokerService.java:329)
	at com.hmdm.notification.guice.module.NotificationMqttTaskModule.initBrokerService(NotificationMqttTaskModule.java:43)
	at com.hmdm.notification.guice.module.NotificationMqttTaskModule.init(NotificationMqttTaskModule.java:28)
	at com.hmdm.guice.Initializer.initTasks(Initializer.java:165)
	at com.hmdm.guice.Initializer.contextInitialized(Initializer.java:133)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4689)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5155)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:743)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:719)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
	at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:614)
	at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1822)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.BindException: Cannot assign requested address (Bind failed)
	at java.net.PlainSocketImpl.socketBind(Native Method)
	at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)
	at java.net.ServerSocket.bind(ServerSocket.java:390)
	at java.net.ServerSocket.<init>(ServerSocket.java:252)
	at javax.net.DefaultServerSocketFactory.createServerSocket(ServerSocketFactory.java:231)
	at org.apache.activemq.transport.tcp.TcpTransportServer.bind(TcpTransportServer.java:143)
	... 22 more
02-Feb-2021 20:16:23.322 INFO [localhost-startStop-1] nonapi.io.github.classgraph.classloaderhandler.lifecycle.ServletLifeCycleListener.contextInitialized Servlet context initialized
2021-02-02 20:16:24 [INFO] org.reflections.Reflections : Reflections took 92 ms to scan 9 urls, producing 326 keys and 690 values 
02-Feb-2021 20:16:25.325 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDescriptor Deployment of deployment descriptor [/usr/local/tomcat/conf/Catalina/localhost/hmdm.xml] has finished in [13,296] ms
02-Feb-2021 20:16:25.329 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
02-Feb-2021 20:16:25.340 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 13350 ms

Here some configuration :

image

image

image

Upgrade hash algorithm from md5

Current hashing algorithm for user/admin passwords is MD5. This should be upgraded to a stronger, more computationally resistant algorithm, as well as using a salt function when storing entries in the PostgreSQL database.

WAR file not found

Hi,

In the folder /hmdm-server/server don't exist any WAR file.

the script installer fails with error:

'cp: missing destination file operand after '/var/lib/tomcat9/webapps//hmdm.war'

Build error

When i try to build project by mvn package
i got this error at the end
[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for Headwind MDM 0.1.0:
[INFO]
[INFO] Headwind MDM ....................................... SUCCESS [ 0.001 s]
[INFO] Core for MDM API ................................... SUCCESS [02:17 min]
[INFO] JWT Auth for MDM API ............................... SUCCESS [ 4.149 s]
[INFO] Push Notifications for MDM API ..................... SUCCESS [ 13.998 s]
[INFO] Plugins for MDM Server ............................. SUCCESS [ 0.000 s]
[INFO] Plugin Platform for MDM Server ..................... SUCCESS [ 0.745 s]
[INFO] Device Log Plugin for MDM Server ................... SUCCESS [ 0.001 s]
[INFO] Device Log Plugin for MDM Server - Core ............ SUCCESS [ 0.742 s]
[INFO] Device Log Plugin for MDM Server - Postgres ........ SUCCESS [ 0.687 s]
[INFO] Audit Plugin for MDM Server ........................ SUCCESS [ 0.661 s]
[INFO] Device Detailed Info Plugin for MDM Server ......... SUCCESS [ 6.258 s]
[INFO] Messaging Plugin for MDM Server .................... SUCCESS [ 0.613 s]
[INFO] Push Messaging Plugin for MDM Server ............... SUCCESS [ 0.594 s]
[INFO] Swagger UI ......................................... SUCCESS [ 47.378 s]
[INFO] MDM Server ......................................... FAILURE [ 23.391 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 03:56 min
[INFO] Finished at: 2023-01-28T01:12:32+05:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:2.7:copy-resources (copy-resources) on project server: Error loading property file 'build.properties': C:\Users\Adhi\Downloads\Hwind\hmdm-server-master\server\build.properties -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn -rf :server

Blocking for a period of time.

It is possible to block the android os and ask for a password key every month for example? and also needs to works offline.
thanks.

Web Panel does not show the applications added by the API in a configuration.

Suppose I have a configuration with four applications, A, B, C, D

  1. I use the API to add the applications E and F. The change is OK on the phone, but in the web interface, the applications list is still showing the four applications. The new ones are not there.
  2. I use the API to change the applications to A, B, E, F. The change is OK on the phone. The applications list now shows only two : A and B.
  3. I use the API to change the applications to C, D, E, F. The change is OK on the phone. The applications list is empty.
  4. I use the API to come back to the first configuration with applications A, B, C, D. The change is OK on the phone. The applications list remains empty.

The conclusion is simple : the API removes applications from the list when needed, but never adds them.
It should be simple to fix.
Thanks

cannot install

Hi, I can't seem to install the server.
Running on Ubuntu 19 and Tomcat9.

Getting this error: failed to deploy WAR file!

QR code generator don't work

Good,

I have successfully deployed the software on a Linux machine, configured according to the producer's requirements for the CE version. The problem comes when a QR code is going to be generated. When a QR code is going to be generated to enroll a device, it does not load the image of the QR code and looking at the logs of catalina.out, I have this error:

2020-10-06 09:29:02 [INFO] com.hmdm.rest.resource.QRCodeResource: Generating QR-code image for configuration key: 6fb9c8dc81483173a0c0e9f8b2e46be1 2020-10-06 09:29:02 [INFO] com.hmdm.rest.resource.QRCodeResource: Digesting the application file: https://h-mdm.com/files/hmdm-3.43-os.apk 2020-10-06 09:29:02 [ERROR] com.hmdm.rest.resource.QRCodeResource: Unexpected error while generating the QR-code image java.net.SocketException: Connection reset at java.net.SocketInputStream.read (SocketInputStream.java:210) at java.net.SocketInputStream.read (SocketInputStream.java:141) at sun.security.ssl.InputRecord.readFully (InputRecord.java:465) at sun.security.ssl.InputRecord.read (InputRecord.java:503) at sun.security.ssl.SSLSocketImpl.readRecord (SSLSocketImpl.java:975) 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.getInputStream0 (HttpURLConnection.java:1570)

Thanks in advanced!!!

Feature Request: Root CA certificate import

Hi!

Is it possible to add function to import CA certificate into Android Cert Store?
It would be best for self signed certificates used in internal SSL websites.

For now, Android require screen lock to import certificate and also renewing would be easier.

Online offline Time interval change

2 * 3600 * 1000 for 2 hours

what is the measurement for 5 min? can you tell me
300 * 1000 or
5/60 * 1000 or
5 * 1000
5 * 60 *1000
2 * 150 * 1000

How to Upgrade

Hi Team,
I am new to hmdm, i would like to know how to upgrade the existing installation, without losing data.

Thanks in Advance.

Getting Started

Just getting started, added a phone here are the questions issues I have found:

  1. Why do I have to enter the device number, wouldn't this be better as an autoincrement number?
  2. it assumes US numbers. The number I am trying to enter is in the format of: +000 11 222 33 44, where 000 is the country code and the rest the phone number
  3. After entering all the information generate QR code is never enabled

Peter

Does HMDM community edition support server deployment/update of main launcher app?

Does HMDM community edition support server deployment/update of main launcher app?

The main readme of the repository specifies this as one of the features under the Features section.

Automatic deployment of applications through the web panel

How could we add/update an app via admin panel /GUI and is there any specific procedure to do the same by executing some command on the server (adding the app to some table and executing some code for an update to follow)?

Thanks a lot for your valuable time and for all your efforts put into bringing up this project!

plugin.audit.action.api.login - Error

Hi Guys,
I am unable to Login using rest API.
I am trying to POST to http://Server_URL/rest/public/jwt/login using JSON format of Username and MD5 Password.

{
"login": "xxxxxx",
"password": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}

But Still i get Unauth. Error. and Same time when i see Audit Log i see plugin.audit.action.api.login - Error

Please help how to fix this.

Regards
Anshu

Knox download config error

Hello,

We are trying to use this to our 150 school tablets. We made a test install following https://h-mdm.com/advanced-web-panel-installation/ all ok the server is online qrcode generating ok

So we follow https://h-mdm.com/knox-mobile-enrollment/ to enrol the tablets (all samsung)

All ok on enrol the tablet but when start the UI get the msg
"Failed to get Knox config from https://+++++++. There is a network error or an old web panel version. Make sure web panel is set up properly and has a Knox plugin

Our install :
Ubuntu 20.04
Knox plugin hmdm-3.65-knox
How can I confirm the webpanel version?

Thanks in advance
Guilherme

Invalid column/type '?column?' in table 'applicationfilestocopytemp'

When running the postgresql database update from 9 to 11 it aborts with the message Checking for invalid "unknown" user columns.

Another search brings up the incorrect table applicationfilestocopytemp which is defined as follows:
CREATE TABLE public.applicationfilestocopytemp (url character varying(500), "?column?" unknown, newurl character varying(500));

Is this needed and then what is the column definition? The creation of the table seems to be not quite https://github.com/h-mdm/hmdm-server/blob/master/server/src/main/resources/liquibase/db.changelog.xml#L944.

Thank you for the software and support!

How i Can block App Like Samsung Knox

hello .. i am using Common - Minimal H-MDM
I am go to configurations/Details/Applications
And Add New App Type name and Package ID
Iam Making Version 0 cuz is system apps
then Check System to Hide URL & File
After Save Ask Me For Actions and iam select Block
When Scan QR And Device Finish Setup ..
Knox Container Agent Pop and Ask Me Reset Device ..
How i can fix that and block any app i want
iam use Your Apk without any edit ..
Any Advice Bro

And Also KG LOCK Not Work ...
How i can solve that

PostgreSQL Authentication Error

I am not sure if this is an issue with the server or with the docker container. If docker I will create a case over there instead.

I am receiving the following error. I have added md5 to my pg_hba.conf file running on my postgre instance.

Caused by: org.postgresql.util.PSQLException: The authentication type 10 is not supported. Check that you have configured the pg_hba.conf file to include the client's IP address or subnet, and that it is using an authentication scheme supported by the driver.

The version of PostgreSQL is PostgreSQL 14.5 (Debian 14.5-1.pgdg110+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit

On-prem Docker instance fails to generate QR code.

Following this post on the forums
https://qa.h-mdm.com/2258/based-enrollment-stucks-downloading-headwind-agent-android

when the launcher app is set to
https://mylocalhmdm.com/files/files/hmdm-5.05-os.apk

The QR code is generated, but when trying to enroll our tablets (All are Android 10) get stuck on "Getting Ready for Work Setup".

If I create a new launcher app on my local headwind instance following the instructions in the post. Headwind fails to generate the QR code because it cant hit https://h-mdm.com/files/hmdm-5.05-os.apk through our corporate proxy.

I have added the HTTP_PROXY and HTTPS_PROXY environment variables to the system, but it still fails to reach out to the public hmdm instance. Error generated when clicking the QR code button in the UI below.

2022-07-27 18:36:26 [INFO] com.hmdm.rest.resource.QRCodeResource : Digesting the application file: https://h-mdm.com/files/hmdm-5.05-os.apk
2022-07-27 18:36:27 [ERROR] com.hmdm.rest.resource.QRCodeResource : Unexpected error while generating the QR-code image
java.net.ConnectException: Connection refused (Connection refused)
        at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399)
        at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242)
        at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224)
        at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:403)
        at java.base/java.net.Socket.connect(Socket.java:609)
        at java.base/sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:289)
        at java.base/sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:173)
        at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:182)
        at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:474)
        at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:569)
        at java.base/sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:265)
        at java.base/sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:372)
        at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1187)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1081)
        at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1592)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)
        at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:250)
        at java.base/java.net.URL.openStream(URL.java:1140)
        at com.hmdm.rest.resource.QRCodeResource.generateQRCode(QRCodeResource.java:182)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)
        at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144)
        at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161)
        at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:160)
        at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99)
        at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389)
        at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347)
        at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102)
        at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326)
        at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
        at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
        at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
        at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
        at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
        at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)
        at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305)
        at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154)
        at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473)
        at org.glassfish.jersey.servlet.ServletContainer.serviceImpl(ServletContainer.java:408)
        at org.glassfish.jersey.servlet.ServletContainer.doFilter(ServletContainer.java:583)
        at org.glassfish.jersey.servlet.ServletContainer.doFilter(ServletContainer.java:524)
        at org.glassfish.jersey.servlet.ServletContainer.doFilter(ServletContainer.java:461)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89)
        at com.hmdm.plugins.audit.rest.filter.AuditFilter.doFilter(AuditFilter.java:108)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at com.hmdm.rest.filter.ApiOriginFilter.doFilter(ApiOriginFilter.java:52)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:121)
        at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:133)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
        at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:880)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1601)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.base/java.lang.Thread.run(Thread.java:834)

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.