Homework 7
CS520, Spring 2010


Due: Friday, June 11

Package all the source files of your project into a zip file using the zip Ant target you developed in Homework 1, and upload the zip file to CSNS. Note that file uploading will be disabled automatically after 11:59PM of the due date, so please turn in your work on time. No late submissions will be accepted for this homework.

[CSNS Wiki]

Continue to work on CSNS Wiki and implement the following functionality. Note that all the functionality from Homework 4 must work; otherwise you will not receive any credit.

1. (15pt) Security.

Use Spring Security to implement security for the wiki. In particular, the security mechanism should ensure that anonymous users (i.e. users who have not logged into CSNS) only have read access to the wiki, while regular users (i.e. users who have logged into the system)  have both read and write access.

Read access includes operations that do not modify the database, e.g. viewing wiki pages and revisions, searching for wiki pages, viewing the discussion topics, and so on. Write access includes operations that will lead to changes to the database, e.g. editing wiki pages, reverting to a previous revision, creating new discussion topics, and so on.

In your hw7.txt, briefly explain how you implemented the security mechanism.

2. (Extra Credit +30pt) Discussion area.

Each wiki page should have a discussion area, which displays the discussion topics for the page and allows users to create new discussion topics. A discussion topic should be implemented as a forum topic in a special forum called Wiki Discussion.

Note that if a user is subscribed to a wiki page, the user should receive an email notification when a new discussion topic for the page is created.

[About Submission and Grading]

For this assignment, in addition to csns.zip, please submit a hw7.txt which includes the following:

Before submitting your work, commit all the changes to your Subversion repository and create a tag.

If you use any libraries that are not in the original CSNS and are not included in your csns.zip, please upload the library jar files together with csns.zip when you submit your work.

To test your project, we will use the following SQL scripts in your csns.zip to create, populate, and then clear the database:

Please make sure that these scripts are up to date and can be run in their entirety without generating any errors. You can check out http://sun.calstatela.edu/~cysun/public/cs520-grading/instructions.txt for more details about the grading procedure.