You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shiro.apache.org by jb...@apache.org on 2012/06/04 15:26:50 UTC

svn commit: r1345959 - in /shiro/trunk/samples: ./ quickstart-guice/ quickstart-guice/src/ quickstart-guice/src/main/ quickstart-guice/src/main/java/ quickstart-guice/src/main/resources/

Author: jbunting
Date: Mon Jun  4 13:26:49 2012
New Revision: 1345959

URL: http://svn.apache.org/viewvc?rev=1345959&view=rev
Log:
SHIRO-320: creating quickstart-guice - a modification of quickstart that uses guice

Added:
    shiro/trunk/samples/quickstart-guice/
    shiro/trunk/samples/quickstart-guice/pom.xml
    shiro/trunk/samples/quickstart-guice/src/
    shiro/trunk/samples/quickstart-guice/src/main/
    shiro/trunk/samples/quickstart-guice/src/main/java/
    shiro/trunk/samples/quickstart-guice/src/main/java/QuickstartGuice.java
      - copied, changed from r1345958, shiro/trunk/samples/quickstart/src/main/java/Quickstart.java
    shiro/trunk/samples/quickstart-guice/src/main/java/QuickstartShiroModule.java
    shiro/trunk/samples/quickstart-guice/src/main/resources/
    shiro/trunk/samples/quickstart-guice/src/main/resources/log4j.properties
      - copied, changed from r1345958, shiro/trunk/samples/quickstart/src/main/resources/log4j.properties
    shiro/trunk/samples/quickstart-guice/src/main/resources/shiro.ini
      - copied, changed from r1345958, shiro/trunk/samples/quickstart/src/main/resources/shiro.ini
Modified:
    shiro/trunk/samples/pom.xml

Modified: shiro/trunk/samples/pom.xml
URL: http://svn.apache.org/viewvc/shiro/trunk/samples/pom.xml?rev=1345959&r1=1345958&r2=1345959&view=diff
==============================================================================
--- shiro/trunk/samples/pom.xml (original)
+++ shiro/trunk/samples/pom.xml Mon Jun  4 13:26:49 2012
@@ -40,6 +40,7 @@
         <module>spring</module>
         <module>spring-hibernate</module>
 	    <module>guice</module>
+        <module>quickstart-guice</module>
     </modules>
 
     <reporting>

Added: shiro/trunk/samples/quickstart-guice/pom.xml
URL: http://svn.apache.org/viewvc/shiro/trunk/samples/quickstart-guice/pom.xml?rev=1345959&view=auto
==============================================================================
--- shiro/trunk/samples/quickstart-guice/pom.xml (added)
+++ shiro/trunk/samples/quickstart-guice/pom.xml Mon Jun  4 13:26:49 2012
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>shiro-samples</artifactId>
+        <groupId>org.apache.shiro.samples</groupId>
+        <version>1.3.0-SNAPSHOT</version>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>samples-quickstart-guice</artifactId>
+    <name>Apache Shiro :: Samples :: Quick Start Guice</name>
+    <packaging>jar</packaging>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>exec-maven-plugin</artifactId>
+                <version>1.1</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>java</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <classpathScope>test</classpathScope>
+                    <mainClass>QuickstartGuice</mainClass>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.shiro</groupId>
+            <artifactId>shiro-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shiro</groupId>
+            <artifactId>shiro-guice</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>jcl-over-slf4j</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-simple</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+</project>
\ No newline at end of file

Copied: shiro/trunk/samples/quickstart-guice/src/main/java/QuickstartGuice.java (from r1345958, shiro/trunk/samples/quickstart/src/main/java/Quickstart.java)
URL: http://svn.apache.org/viewvc/shiro/trunk/samples/quickstart-guice/src/main/java/QuickstartGuice.java?p2=shiro/trunk/samples/quickstart-guice/src/main/java/QuickstartGuice.java&p1=shiro/trunk/samples/quickstart/src/main/java/Quickstart.java&r1=1345958&r2=1345959&rev=1345959&view=diff
==============================================================================
--- shiro/trunk/samples/quickstart/src/main/java/Quickstart.java (original)
+++ shiro/trunk/samples/quickstart-guice/src/main/java/QuickstartGuice.java Mon Jun  4 13:26:49 2012
@@ -17,6 +17,8 @@
  * under the License.
  */
 
+import com.google.inject.Guice;
+import com.google.inject.Injector;
 import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.authc.*;
 import org.apache.shiro.config.IniSecurityManagerFactory;
@@ -29,26 +31,20 @@ import org.slf4j.LoggerFactory;
 
 
 /**
- * Simple Quickstart application showing how to use Shiro's API.
+ * Simple Quickstart application showing how to use Shiro's API with Guice integration.
  *
  * @since 0.9 RC2
  */
-public class Quickstart {
+public class QuickstartGuice {
 
-    private static final transient Logger log = LoggerFactory.getLogger(Quickstart.class);
+    private static final transient Logger log = LoggerFactory.getLogger(QuickstartGuice.class);
 
 
     public static void main(String[] args) {
 
-        // The easiest way to create a Shiro SecurityManager with configured
-        // realms, users, roles and permissions is to use the simple INI config.
-        // We'll do that by using a factory that can ingest a .ini file and
-        // return a SecurityManager instance:
-
-        // Use the shiro.ini file at the root of the classpath
-        // (file: and url: prefixes load from files and urls respectively):
-        Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini");
-        SecurityManager securityManager = factory.getInstance();
+        // We will utilize standard Guice bootstrapping to create a Shiro SecurityManager.
+        Injector injector = Guice.createInjector(new QuickstartShiroModule());
+        SecurityManager securityManager = injector.getInstance(SecurityManager.class);
 
         // for this simple example quickstart, make the SecurityManager
         // accessible as a JVM singleton.  Most applications wouldn't do this

Added: shiro/trunk/samples/quickstart-guice/src/main/java/QuickstartShiroModule.java
URL: http://svn.apache.org/viewvc/shiro/trunk/samples/quickstart-guice/src/main/java/QuickstartShiroModule.java?rev=1345959&view=auto
==============================================================================
--- shiro/trunk/samples/quickstart-guice/src/main/java/QuickstartShiroModule.java (added)
+++ shiro/trunk/samples/quickstart-guice/src/main/java/QuickstartShiroModule.java Mon Jun  4 13:26:49 2012
@@ -0,0 +1,19 @@
+import com.google.inject.Provides;
+import org.apache.shiro.config.Ini;
+import org.apache.shiro.guice.ShiroModule;
+import org.apache.shiro.realm.text.IniRealm;
+
+public class QuickstartShiroModule extends ShiroModule {
+    protected void configureShiro() {
+        try {
+            bindRealm().toConstructor(IniRealm.class.getConstructor(Ini.class));
+        } catch (NoSuchMethodException e) {
+            addError(e);
+        }
+    }
+
+    @Provides
+    Ini loadShiroIni() {
+        return Ini.fromResourcePath("classpath:shiro.ini");
+    }
+}

Copied: shiro/trunk/samples/quickstart-guice/src/main/resources/log4j.properties (from r1345958, shiro/trunk/samples/quickstart/src/main/resources/log4j.properties)
URL: http://svn.apache.org/viewvc/shiro/trunk/samples/quickstart-guice/src/main/resources/log4j.properties?p2=shiro/trunk/samples/quickstart-guice/src/main/resources/log4j.properties&p1=shiro/trunk/samples/quickstart/src/main/resources/log4j.properties&r1=1345958&r2=1345959&rev=1345959&view=diff
==============================================================================
    (empty)

Copied: shiro/trunk/samples/quickstart-guice/src/main/resources/shiro.ini (from r1345958, shiro/trunk/samples/quickstart/src/main/resources/shiro.ini)
URL: http://svn.apache.org/viewvc/shiro/trunk/samples/quickstart-guice/src/main/resources/shiro.ini?p2=shiro/trunk/samples/quickstart-guice/src/main/resources/shiro.ini&p1=shiro/trunk/samples/quickstart/src/main/resources/shiro.ini&r1=1345958&r2=1345959&rev=1345959&view=diff
==============================================================================
    (empty)