# Redmine - project management software # Copyright (C) 2006-2017 Jean-Philippe Lang # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. require File.expand_path('../test_helper', __FILE__) class ApplicationSystemTestCase < ActionDispatch::SystemTestCase DOWNLOADS_PATH = File.expand_path(File.join(Rails.root, 'tmp', 'downloads')) driven_by :selenium, using: :chrome, screen_size: [1024, 900], options: { desired_capabilities: Selenium::WebDriver::Remote::Capabilities.chrome( 'chromeOptions' => { 'prefs' => { 'download.default_directory' => DOWNLOADS_PATH, 'download.prompt_for_download' => false, 'plugins.plugins_disabled' => ["Chrome PDF Viewer"] } } ) } setup do clear_downloaded_files Setting.delete_all Setting.clear_cache end teardown do Setting.delete_all Setting.clear_cache end # Should not depend on locale since Redmine displays login page # using default browser locale which depend on system locale for "real" browsers drivers def log_user(login, password) visit '/my/page' assert_equal '/login', current_path within('#login-form form') do fill_in 'username', :with => login fill_in 'password', :with => password find('input[name=login]').click end assert_equal '/my/page', current_path end def clear_downloaded_files FileUtils.rm downloaded_files end def downloaded_files Dir.glob("#{DOWNLOADS_PATH}/*").reject {|f| f=~/\.(tmp|crdownload)$/} end # Returns the path of the download file def downloaded_file Timeout.timeout(5) do while downloaded_files.empty? sleep 0.2 end end downloaded_files.first end end FileUtils.mkdir_p ApplicationSystemTestCase::DOWNLOADS_PATH 8.14.4'>chore-mention-8.14.4 Vaadin 6, 7, 8 is a Java framework for modern Java web applications: https://github.com/vaadin/frameworkwww-data
aboutsummaryrefslogtreecommitdiffstats
path: root/documentation/articles/Vaadin7SpringSecurityBaseAuthentification.asciidoc
blob: 032dbd9576e529f54019eaf5a6d8ac1249f1e114 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
---
title: Vaadin 7 Spring Security
order: 44
layout: page
---

[[vaadin-7-spring-security-base-authentication]]
= Vaadin 7 + Spring Security (base authentication)

Vaadin 7 is easy to integrate with Spring Security. You should configure only
2 files. First - web.xml and second one spring-security.xml (user
credentials and security settings). This is a small example on how to use
base form for authentication.

[[web.xml-configuration]]
web.xml Configuration
^^^^^^^^^^^^^^^^^^^^^

[source,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/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"id="WebApp_ID|http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://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>
....

[[spring-security.xml]]
spring-security.xml
^^^^^^^^^^^^^^^^^^^

[source,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>
....

For more details, how to extend *spring-security.xml* configuration you
can use
http://docs.spring.io/autorepo/docs/spring-security/3.0.x/reference/ns-config.html[Spring
resources].