Are Java Application Servers Dead?

In the past, application servers were essential for running Java applications. They provided a number of features that were necessary for complex applications, such as:

  • Dependency management
  • Transaction management
  • Security
  • Caching
  • Messaging

However, with the rise of microservices, many developers are moving away from application servers.

As a result, many developers believe that application servers are no longer necessary for microservices. However, there are still a number of reasons why application servers can be beneficial for Java applications, even in a microservices architecture. Continue reading “Are Java Application Servers Dead?”

Oracle’s Weblogic CVE-2019-2725 CRITICAL vulnerability allows spreading of sodinokibi ransomware

Malicious users are exploiting a vulnerability in Oracle WebLogic CVE-2019-2725 to install a ransomware called Sodinokibi.

Once executed, the Trojan creates the followoing file:
[PATH TO ENCRYPTED FILES]\[RANDOM EXTENSION]-HOW-TO-DECRYPT.txt and deletes Shadow Volume Copies and disables Windows startup repair.

Next, the Trojan encrypts files on the compromised server. The Trojan appends a random extension to encrypted files that is unique for each compromised computer and creates the a ransom note file in each folder containing encrypted files: [PATH TO ENCRYPTED FILES]\[RANDOM EXTENSION]-HOW-TO-DECRYPT.txt

The ransom note informs the user their files have been encrypted and provides instructions on how they may pay to have the files decrypted.

Unfortunately CVE-2019-2725 is very easy for attackers to exploit, as anyone with HTTP access to a WebLogic server could carry out an attack. Because of this, the bug has a CVSS v3.0 Base Score: 9.8 CRITICAL.

So how safe are you feeling when vising a Weblogic server app these days? :/

Apache Tomcat – Critical Remote Code Execution (RCE) vulnerability (CVE-2017-12617)

Η ομάδα του Apache Tomcat έχει πρόσφατα επιδιορθώσει πολλές ευπάθειες ασφάλειας. Μια από αυτές θα μπορούσε να επιτρέψει σε έναν μη εξουσιοδοτημένο εισβολέα να εκτελέσει από απόσταση κακόβουλο κώδικα σε επηρεαζόμενους διακομιστές.
Continue reading “Apache Tomcat – Critical Remote Code Execution (RCE) vulnerability (CVE-2017-12617)”

Τα Java VM Options που πρέπει να ξέρεις τι κάνουν!

Είναι πάρα πολλές οι φορές που συναντώ στησίματα σε servers με JVM options και στην ερώτηση μου “γιατί είναι επιλεγμένα αυτά τα options?” η απάντηση είναι: “Γιατί το είχε πει ο “Θανάσης” “που ήξερε” ή “Τι να σου πω; έτσι το βρήκα και μου φάνηκε καλό”.

Αποφάσισα, λοιπόν, να γράψω αυτό το άρθρο, για να αναφέρω τις πιο συχνές παραμέτρους που χρησιμοποιώ εγώ για Java 6 μέχρι και 8, σε παραγωγικά και μη περιβάλλοντα.
Continue reading “Τα Java VM Options που πρέπει να ξέρεις τι κάνουν!”

Πως να κάνετε εγκατάσταση Tomcat 6 σε Ubuntu

Ο Tomcat είναι απο τους αγαπημένους μου application servers για ένα εκκατομύριο λόγους. Ας τον εγκατάστείσουμε λοιπόν στο αγαπημένο OS μου!

Αρχικά ΜΗΝ ΕΓΚΑΤΑΣΤΗΣΕΤΕ Tomcat απο τα REPOSITORIES!! Κάθε φορά που το κάνω το μετανιώνω γιατί μου σπάει τα paths και μαζί με αυτό και τα νεύρα!

Ξεκινάμε λοιπόν, γινόμαστε root και κατεβάζουμε τον Tomcat στη τελευταία έκδοσή του (επι του προκειμένου 6.0.29) στο /var (που με βολεύει εμένα συνήθως 😛 ), κάνουμε αποσυμπίεση και του δίνουμε το “φιλικό” όνομα φακέλου tomcat6 Continue reading “Πως να κάνετε εγκατάσταση Tomcat 6 σε Ubuntu”

Glasshish v3 Installation on Ubuntu / Debian

Όλοι όσοι έχουν ασχολιθεί με J2EE development σίγουρα σε κάποια περίοδο έχουν συναντήσει άρθρα τα οποία περιγράφουν το νέο application server της SUN (ORACLE πλέον) τον Glassfish στην περίφημη έκδοσή του την v3.

Η Αλήθεια είναι πως πρόκειται για ένα πολύ μεγάλο βήμα και για έναν πάρα πολύ καλό full j2ee compiant application server ο οποίος έχει πολλές καλές αποκρίσεις και απο πλευράς ταχύτητας αλλά και χρηστηκότητας.

Ας δούμε λοιπόν την εγκατάσταση του σε Ubuntu 10.04 LTS. Με όμοιο τρόπο γίνεται και σε Debian Lenny.

Κάνουμε login σε ένα terminal με χρήστη root ή εναλλακτικά τρέχουμε sudo -i για να έχουμε ισοδύναμη κατάσταση. Εγκαθιστούμε το maven2 και το sun java6 developers kit δίνοντας

[bash]
apt-get -y install maven2 sun-java6-jdk java-common
[/bash]

Continue reading “Glasshish v3 Installation on Ubuntu / Debian”

2010 Java Platform Survey

Η Έρευνα έγινε το 2010 απο την εταιρεία REPLAY SOLUTIONS. Συμμετήχαν 142,915
ατομα απο την IT βιομηχανία, στοχευμενα περισσότερο σε ειδηκότητε;ς που έχουν να κάνουν με deploy και support JEE εφαρμογών.

Θα τη βρείτε εδώ http://storage.pardot.com/1772/18317/Survey_Results.pdf

Επιλέγοντας τον κατάλληλο J2EE application server

Μια από τις σημαντικές αποφάσισεις στην αρχιτεκτονική ενός online συστήματος στηριζόμενου σε τεχνολογία J2EE αποτελεί η επιλογή του application container πάνω στο οποίο θα στηθεί. Αν το “κέλυφος” του λογισμικού δεν είναι το κατάλληλο για την περίπτωση, οι συνέπειες μπορεί να αποδειχτούν καταστροφικές όταν είναι live ανεξάρτητα οποιασδηποτε προσπάθειας έχει προηγηθεί για την τελειοποίηση της λειτουργίας της εφαρμογής.
Υπάρχουν διάφοροι παράμετροι που επηρεάζουν την καταληλότητα του application server ανά περίπτωση. Στη λίστα των ποιο βασικών φιγουράρουν οι ακόλουθες:

  • Οι επιδόσεις
  • Το κόστος άδειας
  • Η επεκτασιμότητα
  • Η διαθεσιμότητα
  • Η αποτελεσματικότητα / ευκολία που προσδίδει στην ανάπτυξη της εφαρμογής
  • Υπoστήριξη του παρόχου

Σίγουρα όμως ο ποιο καθοριστικός παράγοντας είναι το μέγεθος της εφαρμογής τόσο σε components όσο και στο πλήθος των χρηστών για το οποίο προορίζεται. Με βάση λοιπόν την κατηγοριοποίηση σε μέγεθος, η προτεραιότητα για κάθε μία από τις προαναφερθαίντες παραμέτρους αλλάζει.

Το παρακάτω άρθρο περιγράφει αναλυτικά τη στρατηγική που πρέπει να ακολουθείται στην επιλογή ενός J2EE application server
http://archive.devx.com/java/free/articles/sf0101/sf0101-1.asp

J2EE URL rewrite

To mod_rewrite module του Apache web server πιθανόν το ξέρετε. Πόσες νύχτες έχουν κάποιοι από εμάς ξοδέψει για να το configure-άρουμε ξεσκαρτίζοντας ως και τα ποιο απίθανα forum (από Κορέα μέχρι Αργεντινή) για να χρησιμοποιήσουμε τις απεριόριστες δυνατότητες που έχει ως προς την επαναεγγραφή του URL on the fly στη δική μας περίπτωση.

Να όμως που υπάρχει και έκδοση του URL rewrite σε επίπεδο web application. Η συγκεκριμένη τεχνολογία λέγεται Url Rewriter Filter, ένα ελέυθερα διαθέσιμο προϊόν της Tuckey. Σε αυτό το άρθρο περιγράφω κάποια χαρακτηριστικά και κάποιες πρακτικές οδηγίες χρήσεως.

 

Continue reading “J2EE URL rewrite”

Quick Tip: Κάνοντας remote debugging στον application server

ΟΚ φανταστείται το εξής σενάριο: Εϊναι 3 η ώρα το πρωί και ο μετρητής καφέδων δείχνει 10+. Κλασικά η εφαρμογή έπρεπε να είναι έτοιμη για demo στο UAT περιβάλλον χτες… (ως συνήθως) αλλά πατώντας το Submit σκάει. Το πρόβλημα με το Null pointer exception που φαίνεται στα logs είναι αδύνατο να εντοπιστεί σε τί οφείλεται παρόλο που ο ίδιος κώδικας “παίζει” στο δικό σας PC. Πανικός !!!

Ευτυχώς όμως μπορούμε να κάνουμε remote debugging και να δούμε βήμα προς βήμα που είναι το πρόβλημα. Στο συγκεκριμένο παράδειγμα θα χρησιμοποιήσουμε Glassfish V3 και Eclipse αλλά παρόμοια διαδικασία υπάρχει για άλλους application servers και IDEs. Continue reading “Quick Tip: Κάνοντας remote debugging στον application server”