Java Spring-Security richtig einbinden für Login

B

Blatts

Gast
Hallo,
ich habe eine Webapplikation mittels Spring mittels diverser Turotials programmiert, mit welcher ich Terminbuchungendurchführen kann. Habe so auch einiges verstanden und es soweit geschafft, dass sie läuft. Nun möchte ich zusätzlich einen Login mit Spring-Security einbauen. Dazu gibt es ja auch allerlei Tutorials im Netz. Habe dann erstmal eine Spring-Security.xml mittels
Code:
<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
in der web.xml eingebaut. Dann kommt vom Tomcat der Fehler „HTTP Status 500 - No WebApplicationContext found: no ContextLoaderListener or DispatcherServlet registered?"
Dies behebe ich durch den Eintrag

Code:
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
in der Web.xml. Ab diesem Zeitpunkt startet die App leider nicht mehr.


Wie gesagt, war bei allen Suchergebnissen die Ursache immer ein Versionskonflikt. Ich habe die dependencies inzwischen 3 mal gegeneinander abgeglichen und da ist kein Konflikt bekannt. Habe auch diverse andere Konstellationen probiert, aber irgendwie führt nichts zur Lösung. Was könnte hier der nächste Ansatzpunkt zur Fehlersuche sein? Ich stehe auf dem Schlauch bzw. vor einer Wand. Danke

EDIT//
Ursache war eine fehlerhafte Spring-Security xml. Die funktionierende XML sieht so aus
Code:
<b:beans xmlns="http://www.springframework.org/schema/security"
		 xmlns:b="http://www.springframework.org/schema/beans"
		 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
						http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd">

	<http />

	<user-service>
		<user name="user" password="password" authorities="ROLE_USER" />
	</user-service>

</b:beans>
 
Zuletzt bearbeitet:
1. Teste mal anstatt
<version>4.3.2.RELEASE</version>
diese hier
<version>4.2.8.RELEASE</version>

Ich habe in einem Projekt hier Spring "4.2.5.RELEASE" mit Spring-Security "4.1.0.RELEASE". Diese funktionieren hier einwandfrei.


2. Hast du eine Loginseite oder wie soll der Login aussehen?

3. Evtl. ist deine security-config.xml nicht richtig. Meine hier ist völlig anders.

4. Eigentlich solltest du mittlerweile Spring-Boot verwenden ;-)
 
1. Hat leider nichts gebracht
2. Ja, sollte über eine Loginseite gehen
3. Kann sein. Ich habe das aus einem Beispiel. Inzwischen habe ich nun ein funktionierendes Beispiel dank der offiziellen Doku gebaut. Ich versuche nun das mit meinem bisherigen Code zu verheiraten. Werde nun schrittweise den nicht funktionierenden Code durch den funktionierenden Code ersetzen und die Ergebnisse mal beobachten.
 
Zuletzt bearbeitet:
Wenn du es dann zum Laufen bekommen hast, dann kannst du mit Punkt 4 weitermachen ;)
 
Das werde ich ;-) Danke Dir
Fehler liegt wirklich irgendwo in der security-config. Dreckszeug :rolleyes::D
 
Mit spring-boot (setze ich bei allen neuen Projekten ein) hast du dann die configs zum Großteil im Javacode (außer änderbare Dinge), d. h. es ist wieder alles anders :D
Ich habe z. B. eine eigene Klasse "SecurityConfig", die von org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter ableitet. Dort kann man einiges einstellen bzw. überschreiben, was Security betrifft.
 
Zuletzt bearbeitet:
Hmm, dann lasse ich es vllt doch erstmal noch, da ich hier nach erstmal genug glaube ich davon habe und mich lieber Python für eine Zeit widme :D
 
Da geht das ja so ähnlich. Flask mit flask-security ist etwas schlanker als das hier. :)

Ansonsten rate ich auch unbedingt zu Spring Boot und Java Config statt des elenden XML-Geraffels.
 
Zurück
Oben