# Spring Security Leerzeichen



## Generic1 (4. Jan 2011)

Hallo,

ich verwende folgendes in meiner Spring config Security file: 

[XML]
<bean id="authenticationDao" class="org.springframework.security.userdetails.memory.InMemoryDaoImpl">
        <property name="userMap">
            <value>
                user1=pwd1,ROLE_ADMIN,ROLE_USER
                user2=pwd2,ROLE_USER
                Vorname Nachname=pwd1,ROLE_ADMIN,ROLE_USER
            </value>
        </property>
    </bean>
[/XML]

Wenn ich Vorname und Nachname auseinander schreibe, dann funktionierts nicht, nur wenn ich Vor und nachname zusammenschreibe, dann kann ich mich einloggen, 
Weiß jemand warum das so ist und wie ich es machen kann, dass ich auch Leerzeichen verwenden kann?
Vielen Dank,
lg
Generic


----------



## pizza1234 (5. Jan 2011)

Hi,
ich schätze, das deine Usernamen irgendwo in deiner "InMemoryDaoImpl" getrimt werden.Warum debugst du das nicht mal durch? Die Spring-Sourcen sind doch dafür wunderbar geeignet.

Grüße
Peter


----------



## tfa (5. Jan 2011)

Ich schätze, dass mehrteilige Benutzernamen nicht unterstützt werden (ein Trimmen schneidet ja nur Leerzeichen hinten und vorne ab).


----------



## Generic1 (5. Jan 2011)

>> dass mehrteilige Benutzernamen nicht unterstützt werden

Das kannst ja eher nicht sein, dass man keine Vor- und Nachnamen als username verwenden kann.
Also das glaub ich jetzt mal nicht, irgendeine Möglichkeit gibt es sicher, das zu machen.
Vielleicht hat ja jemand noch eine Idee.
lg


----------



## tfa (5. Jan 2011)

> Das kannst ja eher nicht sein, dass man keine Vor- und Nachnamen als username verwenden kann.


Ich habe noch nie irgendwo gesehen, dass man mehrteilige Usernamen verwenden kann. Kennst du ein Beispiel?


----------



## Generic1 (5. Jan 2011)

OK, da muss ich mich wohl geschlagen geben, ich wollte das so hinbekommen, wie es Xing macht -> Xing zeigt ja dann den Vor- und den Nachnamen an, wenn man eingeloggt ist, einloggen tut man sich aber mit der Email - die enthält natürlich kein Leerzeichen.

Ich werd das ganze sowieso in die DB verlagern, und da kann ich ja dann username (email), password und richtigen Namen von der Registrations- Form speichern und dann den richtigen Namen anzeigen, nachdem sich ein user eingeloggt hat.
Vielen Dank,
lg


----------



## tagedieb (5. Jan 2011)

Hast du mal probiert mit "Nachname" / Passwort einzuloggen?

Ich weiss nicht wie das XML ausgelesen wird. Koennte mir aber vorstellen, dass ein Leerzeichen hier ev. auch als Separator dient und "Vorname" und "Nachname=pwd1,ROLE_ADMIN,ROLE_USER" als zwei User interpretiert. Falls dies klappt sollte es in der DB funktionieren.

PS. Zu 99% werden in Usernamen keine Leerzeichen zugelassen. Auch ist "Vorname Nachname" kein eindeutiger Username, da es mehrere User mit demselben Namen geben kann.


----------



## MQue (5. Jan 2011)

Also InMemoryDaoImpl verwendet standardmäßig java.util.Properties.
Einfach das Leerzeichen mit \ maskieren, dann funktionierts.


----------

