Updated Branches: refs/heads/master be37dc6b9 -> db666c570
DELTASPIKE-441 AbstractAccessDecisionVoter added Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/db666c57 Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/db666c57 Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/db666c57 Branch: refs/heads/master Commit: db666c5709e41343c64a366bf0c853da225d5eb1 Parents: be37dc6 Author: gpetracek <[email protected]> Authored: Sun Nov 10 19:47:51 2013 +0100 Committer: gpetracek <[email protected]> Committed: Sun Nov 10 20:16:23 2013 +0100 ---------------------------------------------------------------------- .../AbstractAccessDecisionVoter.java | 52 ++++++++++++++++++++ .../authorization/AbstractDecisionVoter.java | 40 +++++++++++++++ .../authorization/DefaultSecurityViolation.java | 39 --------------- .../authorization/SimpleSecurityViolation.java | 40 +++++++++++++++ 4 files changed, 132 insertions(+), 39 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/deltaspike/blob/db666c57/deltaspike/modules/security/api/src/main/java/org/apache/deltaspike/security/api/authorization/AbstractAccessDecisionVoter.java ---------------------------------------------------------------------- diff --git a/deltaspike/modules/security/api/src/main/java/org/apache/deltaspike/security/api/authorization/AbstractAccessDecisionVoter.java b/deltaspike/modules/security/api/src/main/java/org/apache/deltaspike/security/api/authorization/AbstractAccessDecisionVoter.java new file mode 100644 index 0000000..a67baa9 --- /dev/null +++ b/deltaspike/modules/security/api/src/main/java/org/apache/deltaspike/security/api/authorization/AbstractAccessDecisionVoter.java @@ -0,0 +1,52 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.deltaspike.security.api.authorization; + +import java.util.HashSet; +import java.util.Set; + +/** + * Base implementation which provides helper methods. + */ +public abstract class AbstractAccessDecisionVoter extends AbstractDecisionVoter implements AccessDecisionVoter +{ + private static final long serialVersionUID = -9145021044568668681L; + + /** + * It should be final - but proxy-libs won't support it. + */ + @Override + public Set<SecurityViolation> checkPermission(AccessDecisionVoterContext accessDecisionVoterContext) + { + Set<SecurityViolation> result = new HashSet<SecurityViolation>(); + + checkPermission(accessDecisionVoterContext, result); + + return result; + } + + /** + * Allows an easier implementation in combination with {@link #newSecurityViolation(String)}. + * + * @param accessDecisionVoterContext current accessDecisionVoterContext + * @param violations set for adding violations + */ + protected abstract void checkPermission(AccessDecisionVoterContext accessDecisionVoterContext, + Set<SecurityViolation> violations); +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/deltaspike/blob/db666c57/deltaspike/modules/security/api/src/main/java/org/apache/deltaspike/security/api/authorization/AbstractDecisionVoter.java ---------------------------------------------------------------------- diff --git a/deltaspike/modules/security/api/src/main/java/org/apache/deltaspike/security/api/authorization/AbstractDecisionVoter.java b/deltaspike/modules/security/api/src/main/java/org/apache/deltaspike/security/api/authorization/AbstractDecisionVoter.java new file mode 100644 index 0000000..72e9c41 --- /dev/null +++ b/deltaspike/modules/security/api/src/main/java/org/apache/deltaspike/security/api/authorization/AbstractDecisionVoter.java @@ -0,0 +1,40 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.deltaspike.security.api.authorization; + +/** + * Base class for decision-voters + */ +//can be used also for similar parts +//e.g. for custom scopes. like it was done in CODI (see AbstractBeanCreationDecisionVoter) +public abstract class AbstractDecisionVoter +{ + /** + * Creates an instance of {@link SecurityViolation} for a given + * string which will be used as reason to describe the violation. + * + * @param reason description of the violation + * @return A new instance of {@link SecurityViolation} + * which provides details about the found restriction. + */ + protected SecurityViolation newSecurityViolation(String reason) + { + return new SimpleSecurityViolation(reason); + } +} http://git-wip-us.apache.org/repos/asf/deltaspike/blob/db666c57/deltaspike/modules/security/api/src/main/java/org/apache/deltaspike/security/api/authorization/DefaultSecurityViolation.java ---------------------------------------------------------------------- diff --git a/deltaspike/modules/security/api/src/main/java/org/apache/deltaspike/security/api/authorization/DefaultSecurityViolation.java b/deltaspike/modules/security/api/src/main/java/org/apache/deltaspike/security/api/authorization/DefaultSecurityViolation.java deleted file mode 100644 index c92492e..0000000 --- a/deltaspike/modules/security/api/src/main/java/org/apache/deltaspike/security/api/authorization/DefaultSecurityViolation.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.deltaspike.security.api.authorization; - -/** - * Simple implementation of a SecurityViolation. - * It will only store the string it gets via the constructor. - */ -public class DefaultSecurityViolation implements SecurityViolation -{ - private String reason; - - public DefaultSecurityViolation(String reason) - { - this.reason = reason; - } - - @Override - public String getReason() - { - return reason; - } -} http://git-wip-us.apache.org/repos/asf/deltaspike/blob/db666c57/deltaspike/modules/security/api/src/main/java/org/apache/deltaspike/security/api/authorization/SimpleSecurityViolation.java ---------------------------------------------------------------------- diff --git a/deltaspike/modules/security/api/src/main/java/org/apache/deltaspike/security/api/authorization/SimpleSecurityViolation.java b/deltaspike/modules/security/api/src/main/java/org/apache/deltaspike/security/api/authorization/SimpleSecurityViolation.java new file mode 100644 index 0000000..d8e317f --- /dev/null +++ b/deltaspike/modules/security/api/src/main/java/org/apache/deltaspike/security/api/authorization/SimpleSecurityViolation.java @@ -0,0 +1,40 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.deltaspike.security.api.authorization; + +/** + * Implementation which just returns the given reason + */ +class SimpleSecurityViolation implements SecurityViolation +{ + private static final long serialVersionUID = -5017812464381395966L; + + private final String reason; + + SimpleSecurityViolation(String reason) + { + this.reason = reason; + } + + @Override + public String getReason() + { + return reason; + } +}
