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