1 package com.atlassian.seraph.config;
2
3 import com.atlassian.seraph.auth.DefaultAuthenticator;
4 import com.atlassian.seraph.auth.GroupRoleMapper;
5 import com.atlassian.seraph.controller.NullSecurityController;
6 import com.atlassian.seraph.interceptor.LoginInterceptor;
7 import com.atlassian.seraph.interceptor.LogoutInterceptor;
8 import com.atlassian.seraph.service.PathService;
9 import junit.framework.TestCase;
10 import mock.MockLoginInterceptor;
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 public class _TestSecurityConfig extends TestCase
32 {
33 public void testSecurityConfig() throws ConfigurationException
34 {
35 SecurityConfigFactory.setSecurityConfig(null);
36 SecurityConfig config = SecurityConfigFactory.getInstance("test-seraph-config.xml");
37 assertTrue(config.getAuthenticator() instanceof DefaultAuthenticator);
38 assertTrue(config.getRoleMapper() instanceof GroupRoleMapper);
39 assertTrue(config.getController() instanceof NullSecurityController);
40 assertEquals(1, config.getServices().size());
41 assertTrue(config.getServices().get(0) instanceof PathService);
42
43 assertEquals("xYz", config.getCookieEncoding());
44 assertEquals("/login.action", config.getLoginURL());
45 assertEquals(100, config.getAutoLoginCookieAge());
46 assertFalse(config.isInsecureCookie());
47 assertEquals("test_security_originalurl", config.getOriginalURLKey());
48 assertEquals(0, config.getInterceptors(LogoutInterceptor.class).size());
49 assertEquals(1, config.getInterceptors(LoginInterceptor.class).size());
50 assertTrue(config.getInterceptors(LoginInterceptor.class).get(0) instanceof MockLoginInterceptor);
51 }
52
53 public void testSecurityConfigWithoutInsecureFlag() throws ConfigurationException
54 {
55 SecurityConfigFactory.setSecurityConfig(null);
56 SecurityConfig config = SecurityConfigFactory.getInstance("test-seraph-config-without-insecure-flag.xml");
57 assertTrue(config.getAuthenticator() instanceof DefaultAuthenticator);
58 assertTrue(config.getRoleMapper() instanceof GroupRoleMapper);
59 assertTrue(config.getController() instanceof NullSecurityController);
60 assertEquals(1, config.getServices().size());
61 assertTrue(config.getServices().get(0) instanceof PathService);
62
63 assertEquals("xYz", config.getCookieEncoding());
64 assertEquals("/login.action", config.getLoginURL());
65 assertEquals(100, config.getAutoLoginCookieAge());
66 assertFalse(config.isInsecureCookie());
67 assertEquals("test_security_originalurl", config.getOriginalURLKey());
68 assertEquals(0, config.getInterceptors(LogoutInterceptor.class).size());
69 assertEquals(1, config.getInterceptors(LoginInterceptor.class).size());
70 assertTrue(config.getInterceptors(LoginInterceptor.class).get(0) instanceof MockLoginInterceptor);
71 }
72
73 public void testSecurityConfigWithInsecureFlag() throws ConfigurationException
74 {
75 SecurityConfigFactory.setSecurityConfig(null);
76 SecurityConfig config = SecurityConfigFactory.getInstance("test-seraph-config-with-insecure-flag.xml");
77 assertTrue(config.getAuthenticator() instanceof DefaultAuthenticator);
78 assertTrue(config.getRoleMapper() instanceof GroupRoleMapper);
79 assertTrue(config.getController() instanceof NullSecurityController);
80 assertEquals(1, config.getServices().size());
81 assertTrue(config.getServices().get(0) instanceof PathService);
82
83 assertEquals("xYz", config.getCookieEncoding());
84 assertEquals("/login.action", config.getLoginURL());
85 assertEquals(100, config.getAutoLoginCookieAge());
86 assertTrue(config.isInsecureCookie());
87 assertEquals("test_security_originalurl", config.getOriginalURLKey());
88 assertEquals(0, config.getInterceptors(LogoutInterceptor.class).size());
89 assertEquals(1, config.getInterceptors(LoginInterceptor.class).size());
90 assertTrue(config.getInterceptors(LoginInterceptor.class).get(0) instanceof MockLoginInterceptor);
91 }
92
93 public void testPluggableLoginUrlStrategy() throws ConfigurationException
94 {
95 SecurityConfigFactory.setSecurityConfig(null);
96 SecurityConfig config = SecurityConfigFactory.getInstance("test-seraph-config-with-login-strategy.xml");
97
98 assertEquals("/inserted/login.action", config.getLoginURL());
99 assertEquals("/inserted/linklogin.action", config.getLinkLoginURL());
100 assertEquals("/inserted/logout.action", config.getLogoutURL());
101 }
102
103 public void testCustomCookiePath() throws ConfigurationException
104 {
105 SecurityConfigFactory.setSecurityConfig(null);
106 SecurityConfig config = SecurityConfigFactory.getInstance("test-seraph-config-with-custom-cookie-path.xml");
107
108 assertEquals("/foo", config.getLoginCookiePath());
109 assertEquals("some-key", config.getLoginCookieKey());
110 }
111 }