You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by jd...@apache.org on 2008/11/25 05:56:24 UTC
svn commit: r720415 - in /geronimo/gshell/trunk:
gshell-commands/gshell-ssh/src/main/java/org/apache/geronimo/gshell/commands/ssh/
gshell-commands/gshell-ssh/src/main/resources/META-INF/gshell/
gshell-support/gshell-security/
Author: jdillon
Date: Mon Nov 24 20:56:23 2008
New Revision: 720415
URL: http://svn.apache.org/viewvc?rev=720415&view=rev
Log:
Add JSecurity-based password auth
Added:
geronimo/gshell/trunk/gshell-commands/gshell-ssh/src/main/java/org/apache/geronimo/gshell/commands/ssh/JSecurityPasswordAuthenticator.java (with props)
Modified:
geronimo/gshell/trunk/gshell-commands/gshell-ssh/src/main/java/org/apache/geronimo/gshell/commands/ssh/BogusPasswordAuthenticator.java
geronimo/gshell/trunk/gshell-commands/gshell-ssh/src/main/resources/META-INF/gshell/components.xml
geronimo/gshell/trunk/gshell-support/gshell-security/pom.xml
Modified: geronimo/gshell/trunk/gshell-commands/gshell-ssh/src/main/java/org/apache/geronimo/gshell/commands/ssh/BogusPasswordAuthenticator.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-commands/gshell-ssh/src/main/java/org/apache/geronimo/gshell/commands/ssh/BogusPasswordAuthenticator.java?rev=720415&r1=720414&r2=720415&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-commands/gshell-ssh/src/main/java/org/apache/geronimo/gshell/commands/ssh/BogusPasswordAuthenticator.java (original)
+++ geronimo/gshell/trunk/gshell-commands/gshell-ssh/src/main/java/org/apache/geronimo/gshell/commands/ssh/BogusPasswordAuthenticator.java Mon Nov 24 20:56:23 2008
@@ -22,14 +22,14 @@
import com.google.code.sshd.server.PasswordAuthenticator;
/**
- * ???
+ * Bogus {@link PasswordAuthenticator}.
*
* @version $Rev$ $Date$
*/
public class BogusPasswordAuthenticator
implements PasswordAuthenticator
{
- public Object authenticate(final String username, final String password) {
- return (username != null && username.equals(password)) ? username : null;
- }
+ public Object authenticate(final String username, final String password) {
+ return (username != null && username.equals(password)) ? username : null;
+ }
}
\ No newline at end of file
Added: geronimo/gshell/trunk/gshell-commands/gshell-ssh/src/main/java/org/apache/geronimo/gshell/commands/ssh/JSecurityPasswordAuthenticator.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-commands/gshell-ssh/src/main/java/org/apache/geronimo/gshell/commands/ssh/JSecurityPasswordAuthenticator.java?rev=720415&view=auto
==============================================================================
--- geronimo/gshell/trunk/gshell-commands/gshell-ssh/src/main/java/org/apache/geronimo/gshell/commands/ssh/JSecurityPasswordAuthenticator.java (added)
+++ geronimo/gshell/trunk/gshell-commands/gshell-ssh/src/main/java/org/apache/geronimo/gshell/commands/ssh/JSecurityPasswordAuthenticator.java Mon Nov 24 20:56:23 2008
@@ -0,0 +1,61 @@
+/*
+ * 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.geronimo.gshell.commands.ssh;
+
+import com.google.code.sshd.server.PasswordAuthenticator;
+import org.jsecurity.SecurityUtils;
+import org.jsecurity.authc.AuthenticationException;
+import org.jsecurity.authc.UsernamePasswordToken;
+import org.jsecurity.subject.Subject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * <a href="http://jsecurity.org">JSecurity</a> {@link PasswordAuthenticator}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class JSecurityPasswordAuthenticator
+ implements PasswordAuthenticator
+{
+ private final Logger log = LoggerFactory.getLogger(getClass());
+
+ public Object authenticate(final String username, final String password) {
+ assert username != null;
+ assert password != null;
+
+ Subject currentUser = SecurityUtils.getSubject();
+
+ if (!currentUser.isAuthenticated()) {
+ UsernamePasswordToken token = new UsernamePasswordToken(username, password);
+
+ try {
+ currentUser.login(token);
+ log.info("User [" + currentUser.getPrincipal() + "] logged in successfully");
+ }
+ catch (AuthenticationException e) {
+ log.error("Authentication failed: " + e, e);
+ return null;
+ }
+ }
+
+ return currentUser.getPrincipal();
+ }
+}
\ No newline at end of file
Propchange: geronimo/gshell/trunk/gshell-commands/gshell-ssh/src/main/java/org/apache/geronimo/gshell/commands/ssh/JSecurityPasswordAuthenticator.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/gshell/trunk/gshell-commands/gshell-ssh/src/main/java/org/apache/geronimo/gshell/commands/ssh/JSecurityPasswordAuthenticator.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: geronimo/gshell/trunk/gshell-commands/gshell-ssh/src/main/java/org/apache/geronimo/gshell/commands/ssh/JSecurityPasswordAuthenticator.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: geronimo/gshell/trunk/gshell-commands/gshell-ssh/src/main/resources/META-INF/gshell/components.xml
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-commands/gshell-ssh/src/main/resources/META-INF/gshell/components.xml?rev=720415&r1=720414&r2=720415&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-commands/gshell-ssh/src/main/resources/META-INF/gshell/components.xml (original)
+++ geronimo/gshell/trunk/gshell-commands/gshell-ssh/src/main/resources/META-INF/gshell/components.xml Mon Nov 24 20:56:23 2008
@@ -81,4 +81,8 @@
<bean name="passwordAuthenticator" class="org.apache.geronimo.gshell.commands.ssh.BogusPasswordAuthenticator"/>
+ <!--
+ <bean name="passwordAuthenticator" class="org.apache.geronimo.gshell.commands.ssh.JSecurityPasswordAuthenticator"/>
+ -->
+
</beans>
\ No newline at end of file
Modified: geronimo/gshell/trunk/gshell-support/gshell-security/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-support/gshell-security/pom.xml?rev=720415&r1=720414&r2=720415&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-support/gshell-security/pom.xml (original)
+++ geronimo/gshell/trunk/gshell-support/gshell-security/pom.xml Mon Nov 24 20:56:23 2008
@@ -50,9 +50,9 @@
<!--
NOTE: The POM installed in central for this puppy are not valid, RC2 shows version is RC1
- and both have the file named *.pom.xml instead *.pom.
+ and both have the file named *.pom.xml instead *.pom. 0.9.0 is out but artifacts are fucked.
-->
-
+
<dependency>
<groupId>org.jsecurity</groupId>
<artifactId>jsecurity</artifactId>