I'm developing a system whose requires to capture user fingerprint. I have done this task using a desktop app in Java.
I need to do it via web using a form or dialog, but I have no idea how to do it. I want to avoid applets. Is there a way to place a button in HTML and capture a fingerprint?
I'm using verifinger sdk
UPDATE
I sent a message to Verifinger team and they sent me this:
Trial SDK package includes all the functionality, including VeriFinger Extended.
Before starting to implement these questions should be raised and answered:
Will your solution be able to interact with user's computer?
If you want your browser application to use client side fingerprint scanners and you want to use Neurotechnology components for it - you should write an applet (Java) or ActiveX component and then embed it to C# asp.net application (sorry we do not have sample for that). There are other ways of implementation but the applet is a general approach.
Will your solution be able to extract biometric templates on client side?
If you want your application to extract and/or do matching on client pc - you will have to use either an applet or ActiveX (in order to run code that references our libraries on clients pc). If you do not want to do that - you can capture an image (either with our components, or maybe just allowing client to select a file), upload it to the back-end (running C# ASP.NET, Java EE or even PHP), do processing there, return the results.
In general the Java Applet sample is a good place to start: you can use it for image capture and/or template extraction and write your own middleware (like enrollment to database or matching) on server (i.e. web services) and reference it from the client browser application.
SDK does include Abis sample java applet. It can be built with Maven running from command prompt this command: "mvn clean install -Papplet"
From SDK\samples\biometrics\java directory (if SDK 5.0 is used)
From SDK\samples\ (if SDK 4.5 is used)
Maven version 3.1.1 is recommended.
I hope it can be useful.
UPDATE 2
I did an applet which capture the fingerprints and passed them to a javascript function.
UPDATE 3
I released an example project to to this, explained in this post.
The Verifinger SDK contains components for creating stand-alone or web-based applications.
Available as a software development kit that allows development of stand-alone and Web-based solutions on Microsoft Windows, Linux, Mac OS X, iOS and Android platforms.
Related
I am a java beginner, looking for pointers to go about writing a web application that would
get downloaded from a internal server,
reads the system information like, OS, antivirus status - on Mac / Windows
generates a report for the user to view
from what i understand this could be done using applets. I learnt that applets are not supported any longer. so any pointers in the right direction would be very helpful
First thing first. You need to understand difference in between Web Application and Desktop application.
You should look for desktop application, which can read data from installed computer and send data using API and API will save that data in some DB and then you can generate reports from it.
In JAVA you can create a executable JAR to do some job on user's computer.
Well, I've tried to do some researches before creating a question but only a little has been found.
Basically, I have got a Spring-based web application. Apparently, you can navigate through web application using HTTP requests and URLs. If you want to edit a user you do a GET request /users/edit/{id} and a new page appears. Then you make some changes to the user and do a POST request /users/edit/{id} and let's say the main page appears.
So, now I need to create a desktop application which can do the same things.
Do I need to rewrite the whole app to port it on the desktop? Is it possible somehow to do sort of HTTP requests from the desktop app to the server, then get a response and process it? Or perhaps there is a proper way to do it?
I feel like it's a big topic but I only need you to point me in the right direction as I'm lacking experience in creating both desktop and web applications together (I'd say, I have never ported app from web to desktop and vice verse).
Earlier I created a few apps using JavaFX and I want to use it again as my GUI platform for the desktop app.
You can go for a solution like, Electron.
It's a framework for creating native applications with web technologies like JavaScript, HTML, and CSS. It uses Chromium and Node.js. You can develop your desktop GUI applications using front and back end components originally developed for your web application.
I'm just pointing you a way. You can look in to this solution and it's also open-source.
If you were about to develop the frontend from scratch I'd recommend you to use something like Ionic Framework where in the latest beta 4 allows you to write once run everywhere (web, PWA, desktop with Electron, and build native build for iOS and Android).
Basically Ionic is an Angular 7 library/superset that allows you to create mobile apps based on a webview. This webview can be embedded and run on any device in a native way.
Even though the same codebase can be run on multiple devices you can customise the look and feel on each platform and access through Cordova, Electron or Capacitor the native device capabilities and hardware.
If you don't want to rewrite the web client, you can use any desktop framework with the preferred language you want. Any modern language/framework will allow you to make HTTP requests against your backend and get the data through your API.
Honestly, nowadays I'd day that JavaFX is not the best option out there and I'd recommend you to go through the web-based approach.
Good luck!
I am working in a web application using ASP.net and C#.
My target is to check on a desktop application on the client machine .. If it was exist then I should launch it. Else if it wasn't exist, we should download, install and then launch it.
I could develop this module using Java Applet but unfortunately, Google decided to disable NPAPI in September 2015, So the applet will not working on Chrome.
My question is about the Applet alternatives to help me implementing the above scenario ?
The only (semi) viable option as far as I can see, is to offer the Chrome user a link to a JNLP file for a desktop application. Then when/if the JWS desktop application starts, have it report back to the server 'loaded OK' and then 'target app. installed/not installed'.
On your server, have a time out for waiting on the client to report back. If it passes that time, presume the client machine does not support Java at all and the user is checking some web service to try and figure out what app. opens a JNLP!
After searching about the most suitable way to achieve my goal, I think using custom protocols will be a nice solution to access my client applications from the web page.
This solution is used by many companies such as Microsoft (using mailto: to open Outlook application) and Apple (using itms: to open iTunes application).
The following link is a very good link which talk about a custom protocols:
https://support.shotgunsoftware.com/entries/86754-How-to-launch-external-applications-using-custom-protocols-rock-instead-of-http-
Once Google Chrome was the first to announce that they won’t be supporting NPAPI anymore, they were also the first to provide a new architecture in order to rewrite your code to work on their browser. You can take a look on Native Messaging, which “can exchange messages with native applications using an API that is similar to the other message passing APIs”. The problem is that this approach only works on Chrome, is not something that you can adapt to other browsers.
A more useful approach is FireBreath, a browser plugin in a post NPAPI world. Check the words below from one buddy of the project:
“FireBreath 2 will allow you to write a plugin that works in NPAPI, ActiveX, or through Native Messaging; it’s getting close to ready to go into beta. It doesn’t have any kind of real drawing support, but would work for what you describe. The install process is a bit of a pain, but it works. The FireWyrm protocol that the native messaging component uses could be used with any connection that allows passing text data; it should be possible to make it work with js-ctypes on firefox or plausibly WEB-RTC or even CORS AJAX in some way. For now the only thing we needed to solve was Chrome, but we did it in a way that should be pretty portable to other technologies.”
I'm a beginner with java applets. I have developed few small desktop applications using core java ( Swing ). I need to build an applet which can do the following things -
Read a system file and modify it.
Create system file.
Execute a system command for setting some configuration of the client machine
Applet will download a file by running a system command. I need to check for the file size and plot download speed in graph.
Applet should run on all platforms ( MAC OSX, Linux, Windows, Android, IOS )
I have already developed this app using python and PyQT which is platform independent. So my app can be run on all platform but that requires PyQT and some dependencies to be installed on all platforms which is a difficult job. So we are opting for java applet to avoid dependent package installation and give more user friendliness and make the application platform independent.
I have already gone through the following link -
http://docs.oracle.com/javase/tutorial/deployment/applet/security.html
According to this link I need a privileged applet to do system related activities.
My Questions are -
Is is at all a good idea to use applets for what I need to implement?
How to make applets privileged?
Does applets work on Android or iOS? AFAIK, JRE is not available for these two platforms.
Can I go for JNLP API? Is that platform independent? I found some examples here - http://pscode.org/jws/api.html#fs
Thanks
Is is at all a good idea to use applets for what I need to implement?
No. Applets are a PITA to develop or maintain.
Do as advised by MadProgrammer and use a stand alone application.
How to make applets privileged?
Digitally sign them, then encourage the user to click OK when prompted.
Does applets work on Android or iOS?
No.
Can I go for JNLP API? Is that platform independent?
The JNLP API is available to desktop apps. and applets running in JSE (so again not iOS or Android).
There is no x-plat language that can cover all required platforms. I'd use Java for desktops & Android API for Android phones. I don't know what iOS is programmed in.
NOTE: I'm a veteran Java developer (10yrs) and have recently decided to make things interesting and jump over to the ASP.NET / C# world. Thus the question...
I have a business requirement to build an ASP.NET web application that can be installed into an "enterprise data center" for use by an entire organization or can be downloaded by a single user and run on their desktop (assuming WinXP or higher). Installing the web application into an enterprise environment is easy, but allowing single users to download a file, double-click, then access the application through their web browser is an entirely different story.
To solve the single user dilemma in Java, I would simply bundle the Jetty web app server into my application and configure the WAR file to start up the web server and run the web application when someone double clicks on it.
Is there any way within the .NET world to do something like this?
Are there other .NET web app containers that I could bundle into my application?
Would I need to create an Installer Wizard that would configure IIS on the users machine?
Any help is much appreciated.
probably the closest thing to what you're describing would be a WPF Browser Application.
What I personally would use is a ClickOnce installed winform or wpf application.
You can include the Cassini web server (free to distribute). This server is great for one or two users, but you wouldn't want to run your site on it.
http://www.ultidev.com/products/Cassini/
There's a side benefit to this .... you can include the code in your solution and set break points wherever you need them. If you're using SharpDevelop instead of Visual Studio set Cassini as the startup project.
EDIT : Just checked the site and I'm not sure if it's open source anymore. I may have used Reflector to generate code to set break-points.