Security Mechanism
Security Mechanism
UIFramework
.dll GUI Framework Your GUI
ISecureUser Your
(from Secure Interfaces) Controllers
Secure.java
Secure
Interfaces
2. enterUserName( )
We did not expand on
3. enterPassword( ) validation since it was a
reverse engineered
4. logInUser( ) component
4.1. validateUserIDPassword( )
[ login successful ]
4.2. setupSecurityContext( )
4.2.1. new(UserID)
[ login successful ]
The
5. setupSecurityContext( ) MainApplicationForm
retains the secure
user context for later
5.1. getUserContext( ) processing by the
user.
6. close( )
7. displayAvailOperations( )
Display the
operations/functions that
the application provides.
:SampleMain : :
AppForm SampleAppSubForm SampleController
: User
It is assumed that the User has logged in.
Secure user
session was
1: // doSomething( ) set up during
Login
2: open(ISecureUser)
1: getAccess(ISecureData)
2: isReadable( )
AND/OR
3: isWriteable( )
AND/OR
4: isDeleteable( )
MainApplicationForm LoginForm
(from GUI Framework) (from GUI Framework) <<control>>
SampleSecureClass Sample Control Class
1 0..1
start() open()
setupSecurityContext() enterUserName() getUniqueID() setSession(toUser: ISecureUser)
validateUserIDPassword()
enterPassword()
logInUser()
Sample Main Form setupSecurityContext()
getUserContext()
1
ISecureData
0..1
(from Secure Interfaces)
<<boundary>>
Sample Application Form
Sample
Application Package
Security
GUI <<subsystem>>
Framework Security
Manager
Sample
Secure Data
Secure
Interfaces
- Done
Object Oriented Analysis and Design 14
Example: Incorporating the Security Mechanism
<<boundary>>
LoginForm <<entity>> <<control>>
<<boundary>>
Schedule RegistrationController
RegisterForCoursesForm
// login user()
// register for courses() // enter username and password()
// validate username and password()
MainApplicationForm LoginForm
(from GUI Framework) (from GUI Framework) <<control>>
<<entity>> RegistrationController
1 0..1 Schedule
start() open()
setupSecurityContext() enterUserName() setSession(toUser: ISecureUser)
validateUserIDPassword()
enterPassword()
logInUser()
MainStudentForm setupSecurityContext()
getUserContext()
1
ISecureData
0..1
(from Secure Interfaces)
<<boundary>>
RegisterForCoursesForm
<<layer>>
Application
<<layer>>
Application
Registration
<<layer>>
Business
Services
<<layer>>
Business Services
3. enterPassword( )
4. logInUser( )
4.1. validateUserIDPassword( )
[ login successful ]
4.2. setupSecurityContext( )
4.2.1. new(UserID)
[ login successful ]
5. setupSecurityContext( )
The MainStudentForm
5.1. getUserContext( ) retains the Student's
session for later
processing by the
user.
6. getUserName( )
7. close( )
8. displayAvailOperations( )
Display the
operations/functions that
the application provides.
: : :
MainStudentForm RegisterForCoursesForm RegistrationController
: Student
It is assumed that the Student has logged in.
Secure user
See Basic Flow - Login Interaction diagram.
session was
1: // register for courses( ) set up during
Login
2: open(ISecureUser)
3: // is registration open?( )
[registration is open]
Provide secure user
4: new() session to controller for
any later validation
5: setSession(ISecureUser)
The user may select any
of these operations 6: // display available operations( )
7: // create schedule( )
8: // update schedule( )
9: // delete schedule( )
4: new( )
5: makeReadable( )
Set the access
permissions to wide open
6: makeWriteable( ) for the Student/owner of the
Schedule
7: makeDeleteable( )
8: setAccess(ISecureData, SecurityAccess)
9: // add schedule(Schedule)
MainStudentForm View
(from Registration) (from GUI Framework)
0..*
0..1 1
+registrant <<entity>>
Student
(from University Artifacts)