Im mới về bảo mật vaadin và mùa xuân, tôi muốn biết nếu có ai có ví dụ dự án hoàn chỉnh về tích hợp mùa xuân và an ninh tích hợp 7.1 + chạy trong máy chủ tomcat (không phải trong cầu cảng).Vaadin 7.1 + Tích hợp mùa xuân-an ninh chạy trên máy chủ Tomcat
Trả lời
Bạn nên có một cái nhìn về điều này GitHub project. Đây là Vaadin 7.1 + Mùa xuân 3.1.2.RELEASE + Dự án tích hợp Spring-Vaadin 2.0.1. Ngoài ra còn có một plugin Jetty bên trong, nhưng bạn có thể chạy/triển khai nó cũng trong tomcat mà không có vấn đề.
Here là một dự án nhỏ tích hợp Vaadin và Spring Security. Nó được thực hiện trong Scala, nhưng rõ ràng là hoạt động trong Java. Mã số là here.
Thnaks cho câu trả lời của bạn, tôi kiểm tra mã và tôi cố dịch nó sang java, nhưng Tôi không biết scala nên tôi có một chút rắc rối. Tôi dịch gần như tất cả, các lớp học duy nhất tôi có một nghi ngờ làm thế nào để dịch chúng là NavigationErrorHandlingStrategy và NavigatorFactory, bạn có thể giúp tôi dịch hai lớp này để java xin vui lòng? – rgaaray
lol ... thats cực kỳ phức tạp – specializt
Vaadin 7 dễ tích hợp với Spring Security. Bạn chỉ nên định cấu hình 2 tệp. Đầu tiên - web.xml và tệp thứ hai spring-security.xml (thông tin xác thực người dùng và cài đặt bảo mật). Đây là ví dụ nhỏ về cách sử dụng biểu mẫu cơ sở để xác thực.
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>
mùa xuân-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>
Để biết thêm chi tiết, làm thế nào để mở rộng mùa xuân-security.xml cấu hình mà bạn có thể sử dụng Spring resources.
Điều đó tốt nhưng nếu tôi muốn sử dụng biểu mẫu đăng nhập tùy chỉnh thì sao? – Bourkadi
thực sự xa của nó là "dễ" - những gì bạn đang hiển thị là một ứng dụng SPRING với sự hỗ trợ vaadin - nhưng thực sự xây dựng một ứng dụng VAADIN với hỗ trợ bảo mật SPRING là ... hơi khó: https://vaadin.com/wiki? p_p_id = 36 & p_p_lifecycle = 0 & p_p_state = pop_up & p_p_mode = view & _36_struts_action =% 2Fwiki% 2Fview & p_r_p_185834411_nodeName = vaadin.com + wiki & p_r_p_185834411_title = IV + - + Cấu hình + và + Sử dụng + Vaadin + Spring + mà không cần + Spring + Boot - xin lỗi nhưng câu trả lời của bạn chỉ hợp lệ cho một vài trường hợp rất hạn chế ... đối với những người muốn sử dụng vaadin CDI một nỗi đau thực sự của nó để có được điều này – specializt
Đối chiếu các ví dụ trên bằng cách sử dụng vào mùa xuân-bảo mật mới nhất, tôi gặp phải các lỗi sau đây và cung cấp soultions tôi:
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.
Bạn nên kiểm tra spring- * Phiên bản của bạn và cập nhật thẻ tiêu đề của spring-security.xml. Ví dụ: tôi sử dụng spring-beans-4.1.6.RELEASE và spring-security-4.0.2.RELEASE. Vì vậy, tôi cập nhật nó như:
<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?
...
Theo gợi ý của resource này, bạn nên xem xét lại chặn-url thẻ như sau:
<intercept-url pattern="/**" access="hasRole('ROLE_USER')" />
Lỗi3
HTTP Status 403 - Expected CSRF token not found. Has your session expired?
Đó là vì bảo mật mùa xuân cho phép bảo vệ CSRF theo mặc định xung đột với Vaadin.Bạn nên thêm một thẻ mới bên http:
<csrf disabled="true" />
Dưới đây là hoàn chỉnh của tôi mùa xuân-security.xml để tham khảo:
<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. Chạy nhiều máy chủ tomcat
- 2. chạy ứng dụng vaadin trên máy tính
- 3. Làm thế nào để tích hợp dự án vaadin tạo maven vào plugin eclipse vaadin?
- 4. Chạy máy chủ Tomcat trên hai cổng khác nhau
- 5. Tomcat & tích hợp Eclipse
- 6. Tích hợp mùa xuân
- 7. Không thể Thêm bên ngoài máy chủ Tomcat trong NetBeans 7.1
- 8. Làm thế nào để chạy Jersey với máy chủ web tích hợp từ Java SE 6?
- 9. Ngoại lệ khi chạy máy chủ Tomcat org.apache.catalina.deploy.WebXml addServlet
- 10. Node.js có thể chạy trong máy chủ Tomcat không?
- 11. Chú thích Jersey, Tomcat và An ninh
- 12. Sự kiện GWT phía máy chủ; thay thế cho Vaadin
- 13. Chứng chỉ SSL Máy chủ Tự động/Máy chủ Tomcat
- 14. Chạy Java trên Máy chủ Web
- 15. Chạy máy chủ Mercurial trên Google AppEngine
- 16. Tích hợp Bố cục SmartGWT trong Vaadin 7
- 17. Truy cập an ninh mùa xuân chính
- 18. Tại sao máy chủ jetty bị treo sau khi máy chủ khởi động và không chạy thử nghiệm tích hợp?
- 19. mùa xuân phiên an ninh timeout
- 20. chạy gdb trên máy chủ web
- 21. Eclipse sửa đổi server.xml mỗi khi chạy dự án (Chạy -> Chạy trên Máy chủ)
- 22. Chạy PHP 5.4 máy chủ web tích hợp bên ngoài localhost
- 23. Tomcat máy chủ không thể bắt đầu
- 24. Hộp tổ hợp Vaadin
- 25. Thêm Máy chủ Tomcat vào Intellij
- 26. Lỗi khi chạy máy chủ nodejs trên máy Mac, 'không tìm thấy hình ảnh phù hợp'
- 27. Symfony2 với PHP 5.4 máy chủ tích hợp
- 28. Chủ đề trong mùa xuân
- 29. loại bỏ tiêu đề máy chủ tomcat
- 30. Maven triển khai nhiều máy chủ Tomcat
Cám ơn câu trả lời của bạn, tôi đã sử dụng các dự án mà bạn đề cập nhưng Tôi không biết tại sao khi tôi nhập thông tin đăng nhập và nhấp vào nút đăng nhập, tôi được chuyển tiếp tới cùng một trang đăng nhập và không chuyển đến giao diện người dùng – rgaaray