forked from nithia/the-core-java
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcore_session.scxml
More file actions
67 lines (67 loc) · 2.96 KB
/
core_session.scxml
File metadata and controls
67 lines (67 loc) · 2.96 KB
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
<?xml version="1.0"?>
<scxml xmlns="http://www.w3.org/2005/07/scxml" version="1.0" initial="logged_in">
<datamodel>
<data id="userdata">
<user xmlns="">
<username/>
<password/>
</user>
</data>
<data id="servicedata">
<services xmlns=""/>
</data>
<data id="messagedata">
<message xmlns="">
<guid/>
<type/>
<function/>
</message>
</data>
</datamodel>
<state id="prelogin">
<transition event="ServiceRequest.login" target="logging_in">
<assign location="Data(userdata, 'user/username')" expr="_eventdata.getParameterValue('username')"/>
<assign location="Data(userdata, 'user/password')" expr="_eventdata.getParameterValue('password')"/>
</transition>
</state>
<state id="logging_in">
<invoke targettype="x-coremessage" src="sendRequest">
<param name="queue" expr="'CoreToService'"/>
<param name="sessionId" expr="sessionId"/>
<param name="service" expr="'SingleSignonService'"/>
<param name="function" expr="'login'"/>
<param name="paramNames" expr="'username|password'"/>
<param name="paramValues" expr="Data(userdata, 'user/username') + '|' + Data(userdata, 'user/password')"/>
<param name="messageType" expr="'ServiceRequest'"/>
</invoke>
<transition event="logging_in.invoke.done" target="awaiting_login_response"/>
</state>
<state id="awaiting_login_response">
<transition event="ServiceResponse" cond="_eventdata.isSuccessful()" target="logged_in"/>
<transition event="ServiceResponse" cond="!_eventdata.isSuccessful()" target="prelogin"/>
</state>
<state id="logged_in">
<transition event="ServiceRequest.*" target="forward_to_service">
<assign location="Data(messagedata, 'message/guid')" expr="_eventdata.getGuid()"/>
</transition>
<transition event="ServiceResponse" target="forward_to_client">
<assign location="Data(messagedata, 'message/guid')" expr="_eventdata.getGuid()"/>
</transition>
<transition event="logout" target="logged_out"/>
</state>
<state id="forward_to_service">
<invoke targettype="x-coremessage" src="forwardRequest">
<param name="sessionId" expr="sessionId"/>
<param name="guid" expr="Data(messagedata, 'message/guid')"/>
</invoke>
<transition event="forward_to_service.invoke.done" target="logged_in"/>
</state>
<state id="forward_to_client">
<invoke targettype="x-coremessage" src="forwardResponse">
<param name="sessionId" expr="sessionId"/>
<param name="guid" expr="Data(messagedata, 'message/guid')"/>
</invoke>
<transition event="forward_to_client.invoke.done" target="logged_in"/>
</state>
<final id="logged_out"/>
</scxml>