Im new su sicurezza vaadin e spring, voglio sapere se qualcuno ha un esempio completo di vaadin 7.1 + spring-security integration in esecuzione in un server tomcat (non in molo).Vaadin 7.1 + Spring-Security Integration in esecuzione in Tomcat Server
risposta
Si dovrebbe dare un'occhiata a questo GitHub project. Questo è un Vaadin 7.1 + Spring 3.1.2.RELEASE + Progetto Spring-Vaadin 2.0.1. C'è anche un plugin per Jetty, ma puoi eseguirlo/distribuirlo anche in tomcat senza problemi.
Here è un piccolo progetto che integra Vaadin e Spring Security. È fatto in Scala, ma ovviamente funziona anche in Java. Il codice è here.
Thnaks per la risposta, prendo visione del codice e provo a tradurlo in java, ma Non conosco scala quindi ho avuto un piccolo problema. Traduco quasi tutti, le uniche classi che ho un dubbio su come tradurle sono NavigationErrorHandlingStrategy e NavigatorFactory, puoi aiutarmi a tradurre queste due classi in java per favore? – rgaaray
lol ... questo è proibitivamente complesso – specializt
Vaadin 7 si integra facilmente con Spring Security. È necessario configurare solo 2 file. Primo: web.xml e il secondo spring-security.xml (credenziali utente e impostazioni di sicurezza). Questo è un piccolo esempio su come utilizzare il modulo di base per l'autenticazione.
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>Vaadin7SpringSecurity</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring/spring-security.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- filter declaration for Spring Security -->
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
primavera-security.xml
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="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-3.2.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.1.xsd">
<http auto-config='true'>
<intercept-url pattern="/*" access="ROLE_USER" />
</http>
<authentication-manager>
<authentication-provider>
<user-service>
<user name="user" password="password" authorities="ROLE_USER" />
</user-service>
</authentication-provider>
</authentication-manager>
</beans:beans>
Per maggiori dettagli, come estendere la configurazione primavera-security.xml è possibile utilizzare Spring resources.
Questo è buono ma cosa succede se voglio usare il modulo di login personalizzato? – Bourkadi
in realtà è tutt'altro che "facile": ciò che stai mostrando è un'applicazione SPRING con SUPPORTO di Vaadin - ma in realtà la creazione di un'applicazione VAADIN con supporto SPRING SECURITY è ... un po 'difficile: https://vaadin.com/wiki? p_p_id = 36 & p_p_lifecycle = 0 & p_p_state = pop_up & p_p_mode = visualizza & _36_struts_action =% 2Fwiki% 2Fview & p_r_p_185834411_nodeName = vaadin.com + wiki & p_r_p_185834411_title = IV + - + Configurare + e + Usare + Vaadin + Spring + senza + Spring + Boot - scusa ma la tua risposta è valida solo per pochi casi molto limitati ... per le persone che vogliono usare vaadin CDI è un vero dolore per ottenere questo risultato – specializt
Ad riferimento l'esempio precedente utilizzando l'ultima primavera-sicurezza, ho incontrato i seguenti errori e fornire il mio soultions:
Error1
Context initialization failed
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: You cannot use a spring-security-2.0.xsd or spring-security-3.0.xsd or spring-security-3.1.xsd schema or spring-security-3.2.xsd schema with Spring Security 4.0. Please update your schema declarations to the 4.0 schema.
Si dovrebbe controllare la molla * Versione e aggiornare il tag di intestazione di spring-security.xml. Ad esempio: utilizzo spring-beans-4.1.6.RELEASE e spring-security-4.0.2.RELEASE. Quindi aggiorno come:
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="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-4.1.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-4.0.xsd">
Error2
HTTP Status 500 - Failed to evaluate expression 'ROLE_USER'
...
Caused by: org.springframework.expression.spel.SpelEvaluationException: EL1008E:(pos 0): Property or field 'ROLE_USER' cannot be found on object of type 'org.springframework.security.web.access.expression.WebSecurityExpressionRoot' - maybe not public?
...
Secondo sentori di questo resource, si dovrebbe rivedere intercetta-url tag come segue:
<intercept-url pattern="/**" access="hasRole('ROLE_USER')" />
Error3
HTTP Status 403 - Expected CSRF token not found. Has your session expired?
Questo perché la sicurezza di primavera abilita la protezione CSRF per impostazione predefinita che è in conflitto con Vaadin.Si dovrebbe aggiungere un nuovo tag all'interno http:
<csrf disabled="true" />
Ecco la mia completa primavera-security.xml per riferimento:
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="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-4.1.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-4.0.xsd">
<http auto-config='true'>
<intercept-url pattern="/**" access="hasRole('ROLE_USER')" />
<csrf disabled="true" />
</http>
<authentication-manager>
<authentication-provider>
<user-service>
<user name="yourUsername" password="yourPassoword" authorities="ROLE_USER" />
</user-service>
</authentication-provider>
</authentication-manager>
</beans:beans>
- 1. Vaadin e Spring MVC Integration
- 2. Come distribuire un'applicazione Spring Integration in Tomcat?
- 3. Continuous Integration Tooling in esecuzione su AppEngine
- 4. JBoss AS 7.1 - pianificazione in esecuzione con annotazione @Schedule
- 5. Vaadin - Espandi componenti in Grid Layout in Vaadin
- 6. Sql server Integration Services Compatibilità 2008-2005
- 7. Esecuzione di un programma Java in background in Tomcat
- 8. Esecuzione del server Tomcat su due porte diverse
- 9. Alcatraz in XCode 7.1
- 10. SpringSecurity - Autenticazione personalizzata automatica
- 11. Vaadin 7, Atmosphere e Server Problemi push
- 12. Spring Integration
- 13. Perché il server Tomcat non funziona con il file web.xml come configurazione servlet utilizzata in un'applicazione Vaadin 7?
- 14. Aggiunta di Tomcat Server in Intellij
- 15. Come configurare il server Tomcat in Netbeans?
- 16. maxConnections valore predefinito per tomcat in esecuzione su Windows 7
- 17. Rilevamento browser client in Vaadin
- 18. Rileva tablet in Vaadin 7
- 19. Vaadin lento in Internet Explorer
- 20. Combinando DispatcherServlet, ContextLoaderListener e SpringSecurity
- 21. rimuovere intestazione server Tomcat
- 22. eseguono diversi server Tomcat
- 23. servizio Tomcat non in esecuzione dopo l'installazione di XAMPP
- 24. Query attualmente in esecuzione in SQL Server
- 25. Deploy su un server Tomcat che è già in esecuzione all'esterno di IntelliJ IDEA
- 26. tomcat in esecuzione, ma la porta 8080 non risponde
- 27. SpringSecurity UserDetailsService ottiene la password
- 28. SpringSecurity WithSecurityContext MockMvc OAuth2 sempre non autorizzato
- 29. Applicazione web in esecuzione sia su Jetty che su Tomcat
- 30. Impossibile utilizzare JConsole con Tomcat in esecuzione come servizio Windows
Grazie per la risposta, ho già utilizzare il progetto che hai menzionato, ma Non so perché quando inserisco le credenziali e clicco sul pulsante di accesso, vengo inoltrato alla stessa pagina di login e non all'interfaccia utente – rgaaray