Skip to content

Commit e5165f0

Browse files
committed
Added login and logout ability.
Fixed #5
1 parent 021a429 commit e5165f0

17 files changed

+497
-56
lines changed

WEB-INF/faces-config.xml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,15 @@
2323
</navigation-case>
2424
</navigation-rule>
2525

26+
<navigation-rule>
27+
<from-view-id>/auth_user.jsp</from-view-id>
28+
<navigation-case>
29+
<from-outcome>index</from-outcome>
30+
<to-view-id>/index.jsp</to-view-id>
31+
<redirect />
32+
</navigation-case>
33+
</navigation-rule>
34+
2635
<resource-bundle>
2736
<base-name>ru.mystamps.i18n.Messages</base-name>
2837
<var>m</var>
@@ -63,6 +72,12 @@
6372
<managed-bean-scope>application</managed-bean-scope>
6473
</managed-bean>
6574

75+
<managed-bean>
76+
<managed-bean-name>user</managed-bean-name>
77+
<managed-bean-class>ru.mystamps.site.beans.UserBean</managed-bean-class>
78+
<managed-bean-scope>session</managed-bean-scope>
79+
</managed-bean>
80+
6681
<managed-bean>
6782
<managed-bean-name>register</managed-bean-name>
6883
<managed-bean-class>ru.mystamps.site.beans.RegisterBean</managed-bean-class>
@@ -80,6 +95,16 @@
8095
</managed-property>
8196
</managed-bean>
8297

98+
<managed-bean>
99+
<managed-bean-name>auth</managed-bean-name>
100+
<managed-bean-class>ru.mystamps.site.beans.AuthBean</managed-bean-class>
101+
<managed-bean-scope>request</managed-bean-scope>
102+
<managed-property>
103+
<property-name>user</property-name>
104+
<value>#{user}</value>
105+
</managed-property>
106+
</managed-bean>
107+
83108
</application>
84109

85110
</faces-config>

WEB-INF/segments/header.jspf

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,27 @@
1-
<div id="header"><h:outputText value="#{m.t_my_stamps}" /></div>
1+
<table id="header">
2+
<tr>
3+
<td>
4+
<div id="logo">
5+
<h:outputText value="#{m.t_my_stamps}" />
6+
</div>
7+
</td>
8+
<td id="user_bar">
9+
<ul>
10+
<li>
11+
<h:outputText value="#{user.name}" rendered="#{user.logged}" />
12+
<h:outputLink value="/auth_user.jsf" rendered="#{not user.logged}">
13+
<h:outputText value="#{m.t_enter}" />
14+
</h:outputLink>
15+
</li>
16+
<li>
17+
<h:form id="logout_form">
18+
<h:commandLink value="#{m.t_logout}" action="#{auth.logout}" rendered="#{user.logged}" />
19+
</h:form>
20+
<h:outputLink value="/register_user.jsf" rendered="#{not user.logged}">
21+
<h:outputText value="#{m.t_register}" />
22+
</h:outputLink>
23+
</li>
24+
</ul>
25+
</td>
26+
</tr>
27+
</table>

auth_user.jsp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,11 @@
2929
</div>
3030
<div class="generic_form">
3131
<h:form id="auth_form" prependId="false">
32+
<h:messages globalOnly="true" errorClass="error" layout="table" />
3233
<h:panelGrid columns="4">
3334
<h:outputLabel for="login" value="#{m.t_login}" />
3435
<h:outputText id="login_required" value="*" styleClass="required_field" />
35-
<h:inputText id="login" required="true">
36+
<h:inputText id="login" value="#{auth.login}" required="true">
3637
<f:validateLength minimum="2" maximum="15" />
3738
<t:validateRegExpr
3839
pattern="[-_a-zA-Z0-9]+"
@@ -42,7 +43,7 @@
4243

4344
<h:outputLabel for="pass" value="#{m.t_password}" />
4445
<h:outputText id="pass_required" value="*" styleClass="required_field" />
45-
<h:inputSecret id="pass" required="true">
46+
<h:inputSecret id="pass" value="#{auth.password}" required="true">
4647
<f:validateLength minimum="4" />
4748
<t:validateRegExpr
4849
pattern="[-_a-zA-Z0-9]+"
@@ -52,7 +53,10 @@
5253

5354
<h:panelGroup />
5455
<h:panelGroup />
55-
<h:commandButton id="submit" type="submit" value="#{m.t_enter}" />
56+
<h:commandButton id="submit"
57+
type="submit"
58+
value="#{m.t_enter}"
59+
action="#{auth.authUser}" />
5660
<h:panelGroup />
5761
</h:panelGrid>
5862
</h:form>

index.jsp

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,6 @@
1515
<div id="content">
1616
<h:outputText value="#{m.t_you_may}" />:
1717
<ul>
18-
<li>
19-
<h:outputLink value="/register_user.jsf">
20-
<h:outputText value="#{m.t_register_on_site}" />
21-
</h:outputLink>
22-
</li>
23-
24-
<li>
25-
<h:outputLink value="/auth_user.jsf">
26-
<h:outputText value="#{m.t_auth_on_site}" />
27-
</h:outputLink>
28-
</li>
2918
<li>
3019
<h:outputLink value="/restore_password.jsf">
3120
<h:outputText value="#{m.t_recover_forget_password}" />

mystamps.sql

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@ CREATE TABLE `suspicious_activities_types` (
3737
PRIMARY KEY(`id`)
3838
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8;
3939

40-
INSERT INTO suspicious_activities_types(name) VALUES("PageNotFound");
40+
INSERT INTO suspicious_activities_types(name)
41+
VALUES ('PageNotFound'), ('AuthenticationFailed');
4142

4243
----
4344
-- suspicious_activities

selenium/tests/TestAuthUser_Flow.html

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
<table>
2+
<!--
3+
ATTENTION!
4+
This test will fails if selenium/tests/TestActivateUser_Flow.html
5+
was not run before.
6+
-->
7+
8+
<tr>
9+
<td>open</td>
10+
<td>http://my-stamps:8080/auth_user.jsf</td>
11+
<td></td>
12+
</tr>
13+
14+
<!-- try to log in -->
15+
<tr>
16+
<td>type</td>
17+
<td>xpath=//input[@name="login"]</td>
18+
<td>test-login</td>
19+
</tr>
20+
<tr>
21+
<td>type</td>
22+
<td>xpath=//input[@name="pass"]</td>
23+
<td>test-password</td>
24+
</tr>
25+
<tr>
26+
<td>clickAndWait</td>
27+
<td>xpath=//input[@type="submit"]</td>
28+
<td></td>
29+
</tr>
30+
<tr>
31+
<td>assertLocation</td>
32+
<td>http://my-stamps:8080/index.jsf</td>
33+
<td></td>
34+
</tr>
35+
36+
<!-- user name should be in a user bar -->
37+
<tr>
38+
<td>assertElementPresent</td>
39+
<td>xpath=//td[@id='user_bar']/ul/li[1]</td>
40+
<td></td>
41+
</tr>
42+
<tr>
43+
<td>verifyText</td>
44+
<td>xpath=//td[@id='user_bar']/ul/li[1]</td>
45+
<td>Test Suite</td>
46+
</tr>
47+
48+
<!-- check link to logout -->
49+
<tr>
50+
<td>assertElementPresent</td>
51+
<td>xpath=//td[@id='user_bar']/ul/li[2]/form[@id="logout_form"]/a</td>
52+
<td></td>
53+
</tr>
54+
<tr>
55+
<td>verifyText</td>
56+
<td>xpath=//td[@id='user_bar']/ul/li[2]/form[@id="logout_form"]/a</td>
57+
<td>Log out</td>
58+
</tr>
59+
60+
<!-- try to log out -->
61+
<tr>
62+
<td>clickAndWait</td>
63+
<td>xpath=//td[@id='user_bar']/ul/li[2]/form[@id="logout_form"]/a</td>
64+
<td></td>
65+
</tr>
66+
<tr>
67+
<td>assertLocation</td>
68+
<td>http://my-stamps:8080/index.jsf</td>
69+
<td></td>
70+
</tr>
71+
72+
<!-- check user bar: links to login/register -->
73+
<tr>
74+
<td>assertElementPresent</td>
75+
<td>xpath=//td[@id='user_bar']/ul/li[1]/a</td>
76+
<td></td>
77+
</tr>
78+
<tr>
79+
<td>verifyText</td>
80+
<td>xpath=//td[@id='user_bar']/ul/li[1]/a</td>
81+
<td>Log in</td>
82+
</tr>
83+
<tr>
84+
<td>assertElementPresent</td>
85+
<td>xpath=//td[@id='user_bar']/ul/li[2]/a</td>
86+
<td></td>
87+
</tr>
88+
<tr>
89+
<td>verifyText</td>
90+
<td>xpath=//td[@id='user_bar']/ul/li[2]/a</td>
91+
<td>Register</td>
92+
</tr>
93+
94+
</table>

selenium/tests/TestAuthUser_Validation.html

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,4 +251,31 @@
251251
<td>Password should contains only latin letters, digits, hyphen or underscore</td>
252252
</tr>
253253

254+
<!-- check wrong login and password -->
255+
<tr>
256+
<td>type</td>
257+
<td>xpath=//input[@name="login"]</td>
258+
<td>test</td>
259+
</tr>
260+
<tr>
261+
<td>type</td>
262+
<td>xpath=//input[@name="pass"]</td>
263+
<td>test</td>
264+
</tr>
265+
<tr>
266+
<td>clickAndWait</td>
267+
<td>xpath=//input[@type="submit"]</td>
268+
<td></td>
269+
</tr>
270+
<tr>
271+
<td>assertElementPresent</td>
272+
<td>xpath=//tr[@class="error"]/td[1]</td>
273+
<td></td>
274+
</tr>
275+
<tr>
276+
<td>verifyText</td>
277+
<td>xpath=//tr[@class="error"]/td[1]</td>
278+
<td>Wrong login or password!</td>
279+
</tr>
280+
254281
</table>

0 commit comments

Comments
 (0)