[Tutorial] Sessions mit Spring nutzen

Heute habe ich mich gefragt, wie man Sessions mit Spring in Java nutzen kann und mit etwas Recherche erfahren, dass es in Spring um einiges einfacher ist, als ich anfangs gedacht habe. Auf die Maven Konfiguration werde ich hier nicht genauer eingehen.

 

Was ist eine Session?

Session heißt übersetzt “Sitzung” und ist auch wortwörtlich eine. Jedem User wird dabei eine eindeutige ID zugeordnet und als Cookie gespeichert und der Server weiß somit, dass es sich beim nächsten Seitenaufruf immer noch um den selben User handelt. Was nach Tracking klingt ist fürs moderne Web unentbehrlich! Wenn der Server nicht wüsste, dass es sich um den selben User handelt, wüsste er auch nicht, ob der User eingeloggt ist oder wie sein Benutzername lautet, man müsste sich also ohne immer auf jeder Seite neu einloggen! Damit kommen wir auch gleich zum nächsten Punkt:
Während der Client nur die sessionID besitzt, kann man auf Serverseite Daten zu dem User (z.B. userID, Username, Flag ob er eingeloggt ist usw.) speichern, die der Client nicht manipulieren kann. Ein Hacker könnte höchstens versuchen, die sessionID per Cookie zu manipulieren und eine richtige sessionID herauszufinden (sog. Session Hijacking), allerdings ist dies nicht so einfach möglich, wie es sich anhört, da die ID keine Zahl, sondern meist ein Hash ist. Diese wird übrigens erstellt, sobald der User entweder die Seite zum ersten Mal aufruft oder die alte Session abgelaufen ist (z.B. kann eine Session nur 15 Minuten gültig sein, damit ein Benutzer automatisch ausgeloggt wird, sobald er 15 Minuten nicht aktiv ist).

Continue reading

[Tutorial] Eine Einführung in Maven – Teil 2 / 2

Im 1. Teil des Tutorials haben wir bereits gelernt, wie man ein Maven Projekt erstellt. Auch was Maven ist, wissen wir bereits.

In diesem 2. Teil soll es nun darum gehen, wie wir Maven Projekte konfigurieren und richtig einsetzen.

Continue reading

[Tutorial] Ein Chat Server in Java – Teil 2 / 2

In diesem 2. Teil des Tutorials wollen wir uns um den Chat Client kümmern. Zum ersten Teil gehts hier.

In diesem Tutorial läuft der Client nur in der Console, allerdings ist es ein leichtes, den Client um ein GUI zu erweitern, da er dafür ausgelegt wurde.

Hier der volle Source Code: https://github.com/JuKu/chat-server-tutorial

Chat Client Version 1.0.0

Chat Client Version 1.0.0

Continue reading

[Tutorial] Ein Chat Server in Java – Teil 1 / 2

In diesem Tutorial wollen wir einen kleinen Chat Server in Java mit der Library vertx.io schreiben. Ursprünglich wollte ich lediglich einen kleinen Prototyp schreiben, um vertx.io etwas genauer kennen zu lernen, aber dann habe ich gleich angefangen ein kleines Tutorial dazu zu veröffentlichen, um diese Erfahrung mit euch zu teilen.

Der Chat Server & Client wird nur in der Console laufen, allerdings ist es ein leichtes, eine GUI für ihn zu bauen, da diese bereits beim Entwurf mit berücksichtigt wurde. Zu Beginn soll ein Benutzername eingegeben werden, danach kann der User direkt Nachrichten eingeben und mit ENTER zum Server schicken, um mit den anderen Nutzern zu chatten. Das ganze wird als JSON String übertragen. Die Implementierung des Clients folgt im 2. Teil des Tutorials!

Der Chat Server ist übrigens nicht auf eine Anzahl an Clients begrenzt, er kann so viele Chat Clients aufnehmen, bis der RAM voll oder die CPU ausgelastet ist. 😀

Chatserver Architektur

Continue reading

[Java] Nativen (Off-Heap) Speicher allozieren

Ja, ihr habt richtig gelesen! In diesem Blog Beitrag geht es darum, wie man in Java nativen Speicher (Off Heap Speicher) alloziert, der außerhalb des Garbage Collectors läuft, also in etwa so, wie wenn man in C oder C++ mit malloc() Speicher allozieren würde.

Continue reading

[Tutorial] How to write an multiplayer game server – Part 1 Maven Configuration

This it the first part of the new “How to write an multiplayer game server” tutorial serie.

In this part we will talk about our dependencies and configure our maven project.

We will use Maven as Build & Dependencie Management Tool and create an new project and Netty as fast and asynchronous networking library.

You will find source code here: https://github.com/JuKu/multiplayer-server-tutorial/tree/master/chapter01

Continue reading

Announcement: An Multiplayer Server Tutorial

In the next time i want to create an Tutorial Serie “How to write an multiplayer game server?” to show some users, how they can build / implement their own multiplayer game server.

I will write this articles in english to give also other users from other countries the chance to read this tutorials.

Continue reading

[Tutorial] Eine Einführung in Maven – Teil 1 / 2

Apache Maven Project

In diesem Blog Beitrag soll es einmal um ein Maven Tutorial mit einer kurzen Einführung gehen. Dies ist der 1. Teil, bei dem es um die allgemeinen Sachen und die Projekt Erstellung geht, im 2. Teil geht es um die eig. pom.xml Konfiguration, dependencies, Maven Plugins usw.

Maven ist ein Build & Dependencie Management Tool hauptsächlich für Java von der Apache Software Foundation, aber auch einige andere Programmiersprachen werden unterstützt.

Man kann es in etwa mit cmake unter C / C++ vergleichen, mit dem Unterschied, dass Maven um ein vielfaches mächtiger ist, als cmake.

 

Continue reading

Java 9 verschoben

Java Logo

Wie in diesem Monat bekannt geworden ist, wurde der Release der neueste Java Version, Java 9 (1.9) um 4 Monate verschoben.

Ursprünglich sollte Java 9 sogar schon sogar schon im Herbst diesen Jahres erscheinen!

Einer der Gründe gegen den Release war vermutlich auch das derzeitige, noch unfertige und heftig umstrittene Modul-Feature Jigsaw, sowie die Entfernung der Klasse sun.misc.Unsafe, welche sehr viele bekannte Java Libraries (LWJGL, Slick2D, LibGDX, Netty, Hazelcast usw.) nutzen, um sehr performant nativen Off-Heap Speicher zu allozieren.

 

Hier gibts einige sehr interessante Artikel zu sun.misc.Unsafe:

 

Quellen & weitere Links: