Permalink
Show file tree
Hide file tree
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
no message
- Loading branch information
stephan
committed
Jul 2, 2004
1 parent
d2d1c59
commit d0c591c
Showing
7 changed files
with
420 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
|
||
|
||
/* | ||
$Id$ | ||
|
||
Copyright 2003 (C) James Strachan and Bob Mcwhirter. All Rights Reserved. | ||
|
||
Redistribution and use of this software and associated documentation | ||
("Software"), with or without modification, are permitted provided | ||
that the following conditions are met: | ||
|
||
1. Redistributions of source code must retain copyright | ||
statements and notices. Redistributions must also contain a | ||
copy of this document. | ||
|
||
2. Redistributions in binary form must reproduce the | ||
above copyright notice, this list of conditions and the | ||
following disclaimer in the documentation and/or other | ||
materials provided with the distribution. | ||
|
||
3. The name "groovy" must not be used to endorse or promote | ||
products derived from this Software without prior written | ||
permission of The Codehaus. For written permission, | ||
please contact info@codehaus.org. | ||
|
||
4. Products derived from this Software may not be called "groovy" | ||
nor may "groovy" appear in their names without prior written | ||
permission of The Codehaus. "groovy" is a registered | ||
trademark of The Codehaus. | ||
|
||
5. Due credit should be given to The Codehaus - | ||
http://groovy.codehaus.org/ | ||
|
||
THIS SOFTWARE IS PROVIDED BY THE CODEHAUS AND CONTRIBUTORS | ||
``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT | ||
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND | ||
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL | ||
THE CODEHAUS OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, | ||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | ||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, | ||
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED | ||
OF THE POSSIBILITY OF SUCH DAMAGE. | ||
|
||
*/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
/* | ||
* This file is part of "SnipSnap Wiki/Weblog". | ||
* | ||
* Copyright (c) 2002 Stephan J. Schmidt, Matthias L. Jugel | ||
* All Rights Reserved. | ||
* | ||
* Please visit http://snipsnap.org/ for updates and contact. | ||
* | ||
* --LICENSE NOTICE-- | ||
* This program is free software; you can redistribute it and/or | ||
* modify it under the terms of the GNU General Public License | ||
* as published by the Free Software Foundation; either version 2 | ||
* of the License, or (at your option) any later version. | ||
* | ||
* This program is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU General Public License | ||
* along with this program; if not, write to the Free Software | ||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
* --LICENSE NOTICE-- | ||
*/ | ||
|
||
package org.snipsnap.security; | ||
|
||
import org.snipsnap.snip.Snip; | ||
|
||
/** | ||
* Stores information about the context | ||
* | ||
* @author Stephan J. Schmidt | ||
* @version $Id$ | ||
*/ | ||
|
||
public class AccessContext { | ||
private Snip snip; | ||
|
||
public AccessContext(Snip snip) { | ||
this.snip = snip; | ||
} | ||
|
||
public Snip getSnip() { | ||
return snip; | ||
} | ||
|
||
public void setSnip(Snip snip) { | ||
this.snip = snip; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
/* | ||
* This file is part of "SnipSnap Wiki/Weblog". | ||
* | ||
* Copyright (c) 2002 Stephan J. Schmidt, Matthias L. Jugel | ||
* All Rights Reserved. | ||
* | ||
* Please visit http://snipsnap.org/ for updates and contact. | ||
* | ||
* --LICENSE NOTICE-- | ||
* This program is free software; you can redistribute it and/or | ||
* modify it under the terms of the GNU General Public License | ||
* as published by the Free Software Foundation; either version 2 | ||
* of the License, or (at your option) any later version. | ||
* | ||
* This program is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU General Public License | ||
* along with this program; if not, write to the Free Software | ||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
* --LICENSE NOTICE-- | ||
*/ | ||
|
||
package org.snipsnap.security; | ||
|
||
import org.snipsnap.user.User; | ||
import gabriel.Permission; | ||
|
||
/** | ||
* Check for access to resources and operations | ||
* | ||
* @author Stephan J. Schmidt | ||
* @version $Id$ | ||
*/ | ||
|
||
public interface AccessController { | ||
public boolean checkPermission(User user, Permission permission, AccessContext context); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
/* | ||
* This file is part of "SnipSnap Wiki/Weblog". | ||
* | ||
* Copyright (c) 2002 Stephan J. Schmidt, Matthias L. Jugel | ||
* All Rights Reserved. | ||
* | ||
* Please visit http://snipsnap.org/ for updates and contact. | ||
* | ||
* --LICENSE NOTICE-- | ||
* This program is free software; you can redistribute it and/or | ||
* modify it under the terms of the GNU General Public License | ||
* as published by the Free Software Foundation; either version 2 | ||
* of the License, or (at your option) any later version. | ||
* | ||
* This program is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU General Public License | ||
* along with this program; if not, write to the Free Software | ||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
* --LICENSE NOTICE-- | ||
*/ | ||
|
||
package org.snipsnap.security; | ||
|
||
/** | ||
* Stores and retrieves Acl Lists | ||
* | ||
* @author Stephan J. Schmidt | ||
* @version $Id$ | ||
*/ | ||
|
||
public interface AclManager { | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
/* | ||
* This file is part of "SnipSnap Wiki/Weblog". | ||
* | ||
* Copyright (c) 2002 Stephan J. Schmidt, Matthias L. Jugel | ||
* All Rights Reserved. | ||
* | ||
* Please visit http://snipsnap.org/ for updates and contact. | ||
* | ||
* --LICENSE NOTICE-- | ||
* This program is free software; you can redistribute it and/or | ||
* modify it under the terms of the GNU General Public License | ||
* as published by the Free Software Foundation; either version 2 | ||
* of the License, or (at your option) any later version. | ||
* | ||
* This program is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU General Public License | ||
* along with this program; if not, write to the Free Software | ||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
* --LICENSE NOTICE-- | ||
*/ | ||
|
||
package org.snipsnap.security; | ||
|
||
import org.snipsnap.user.User; | ||
|
||
import java.util.Set; | ||
import java.util.Iterator; | ||
|
||
import gabriel.acl.Acl; | ||
import gabriel.acl.AclEntry; | ||
import gabriel.Principal; | ||
import gabriel.Group; | ||
import gabriel.Permission; | ||
|
||
/** | ||
* Check for access to resources and operations | ||
* | ||
* @author Stephan J. Schmidt | ||
* @version $Id$ | ||
*/ | ||
|
||
public class DefaultAccessController implements AccessController { | ||
private Acl acl; | ||
private AclManager aclManager; | ||
private Principal owner; | ||
|
||
public DefaultAccessController() { | ||
this.aclManager = aclManager; | ||
|
||
owner = new Principal("AclOwner"); | ||
acl = new Acl(owner, "SnipSnap"); | ||
|
||
Group editors = new Group("Editor"); | ||
|
||
AclEntry entry = new AclEntry(editors); | ||
Permission post = new Permission("POST_BLOG"); | ||
entry.addPermission(post); | ||
acl.addEntry(owner, entry); | ||
} | ||
|
||
public boolean checkPermission(User user, Permission permission, AccessContext context) { | ||
// generate principal from user | ||
// probably take context into account | ||
// check if he has the permission to do things | ||
Set roles = user.getRoles().getRoleSet(); | ||
|
||
Iterator iterator = roles.iterator(); | ||
boolean hasPermission = false; | ||
while (iterator.hasNext()) { | ||
String role = (String) iterator.next(); | ||
hasPermission = hasPermission || acl.checkPermission(new Principal(role), permission); | ||
} | ||
return hasPermission; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
/* | ||
* This file is part of "SnipSnap Wiki/Weblog". | ||
* | ||
* Copyright (c) 2002 Stephan J. Schmidt, Matthias L. Jugel | ||
* All Rights Reserved. | ||
* | ||
* Please visit http://snipsnap.org/ for updates and contact. | ||
* | ||
* --LICENSE NOTICE-- | ||
* This program is free software; you can redistribute it and/or | ||
* modify it under the terms of the GNU General Public License | ||
* as published by the Free Software Foundation; either version 2 | ||
* of the License, or (at your option) any later version. | ||
* | ||
* This program is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU General Public License | ||
* along with this program; if not, write to the Free Software | ||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
* --LICENSE NOTICE-- | ||
*/ | ||
|
||
package org.snipsnap.security; | ||
|
||
/** | ||
* Stores and retrieves Acl Lists | ||
* | ||
* @author Stephan J. Schmidt | ||
* @version $Id$ | ||
*/ | ||
|
||
public class DefaultAclManager { | ||
|
||
} |
Oops, something went wrong.