<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="http://soft.vub.ac.be/ajtraining/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://soft.vub.ac.be/ajtraining/feed.php">
        <title>AspectJ 5 Training - auth</title>
        <description></description>
        <link>http://soft.vub.ac.be/ajtraining/</link>
        <image rdf:resource="http://soft.vub.ac.be/ajtraining/_media/wiki:dokuwiki-128.png" />
       <dc:date>2026-04-07T09:07:38+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://soft.vub.ac.be/ajtraining/auth:ex1?rev=1612529231&amp;do=diff"/>
                <rdf:li rdf:resource="http://soft.vub.ac.be/ajtraining/auth:ex2?rev=1612529231&amp;do=diff"/>
                <rdf:li rdf:resource="http://soft.vub.ac.be/ajtraining/auth:ex3?rev=1612529231&amp;do=diff"/>
                <rdf:li rdf:resource="http://soft.vub.ac.be/ajtraining/auth:ex4?rev=1612529231&amp;do=diff"/>
                <rdf:li rdf:resource="http://soft.vub.ac.be/ajtraining/auth:intro?rev=1612529231&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://soft.vub.ac.be/ajtraining/_media/wiki:dokuwiki-128.png">
        <title>AspectJ 5 Training</title>
        <link>http://soft.vub.ac.be/ajtraining/</link>
        <url>http://soft.vub.ac.be/ajtraining/_media/wiki:dokuwiki-128.png</url>
    </image>
    <item rdf:about="http://soft.vub.ac.be/ajtraining/auth:ex1?rev=1612529231&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-05T12:47:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ex1</title>
        <link>http://soft.vub.ac.be/ajtraining/auth:ex1?rev=1612529231&amp;do=diff</link>
        <description>Intro
Ex1
Ex2
Ex3
Ex4

Authentication: Tracing

Create a new aspect named AccessControl. Define a pointcut named restricted() that selects the execution of all methods or constructors that carry the @Authenticated annotation.
executionexecution

As such, the aspect will have no influence on the program. Add an advice to output a tracing message before the execution of the join points selected by this pointcut. You can use the following log statement inside the advice body to write to the Console…</description>
    </item>
    <item rdf:about="http://soft.vub.ac.be/ajtraining/auth:ex2?rev=1612529231&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-05T12:47:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ex2</title>
        <link>http://soft.vub.ac.be/ajtraining/auth:ex2?rev=1612529231&amp;do=diff</link>
        <description>Intro
Ex1
Ex2
Ex3
Ex4

Authentication: Enforce authenticated user

Extend your aspect to enforce an authenticated user when @Authenticated methods or constructors are executed.

To model the authentication, we will present the user with an input dialog where he/she can select the role. (This is of course a simplification: in production, we would of course have to prompt for login and password and verify these against a password database.)</description>
    </item>
    <item rdf:about="http://soft.vub.ac.be/ajtraining/auth:ex3?rev=1612529231&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-05T12:47:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ex3</title>
        <link>http://soft.vub.ac.be/ajtraining/auth:ex3?rev=1612529231&amp;do=diff</link>
        <description>Intro
Ex1
Ex2
Ex3
Ex4

Authentication: Enforce appropriate role

Of course, the @Authenticated annotations can specify stronger requirements than simply an authenticated user. For example, moving entire lines should only be allowed for supervisors.

Change your aspect to verify that the user is authenticated and holds at least the role specified by the</description>
    </item>
    <item rdf:about="http://soft.vub.ac.be/ajtraining/auth:ex4?rev=1612529231&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-05T12:47:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ex4</title>
        <link>http://soft.vub.ac.be/ajtraining/auth:ex4?rev=1612529231&amp;do=diff</link>
        <description>Intro
Ex1
Ex2
Ex3
Ex4

Authentication: Other restricted method

Create another aspect. From within this aspect, introduce the @Authenticated annotation (with ADMIN as the role value) to the extraPanel() method of the Main class in package figures.gui. This method initiates the creation of an additional figure editor window.</description>
    </item>
    <item rdf:about="http://soft.vub.ac.be/ajtraining/auth:intro?rev=1612529231&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-05T12:47:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>intro</title>
        <link>http://soft.vub.ac.be/ajtraining/auth:intro?rev=1612529231&amp;do=diff</link>
        <description>Intro
Ex1
Ex2
Ex3
Ex4

Authentication: Intro

In these exercises, we will use AspectJ and annotations to protect the access to a number of methods in the figure editor application.

Set-up &amp; Running

You can reuse the AspectJ project with the figure editor application you have created during the previous track. If you haven&#039;t got such a project yet, consult the</description>
    </item>
</rdf:RDF>
