You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@manifoldcf.apache.org by kw...@apache.org on 2013/07/10 03:50:35 UTC
svn commit: r1501633 - in /manifoldcf/trunk: ./
connectors/activedirectory/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/activedirectory/
connectors/documentum/connector/src/main/java/org/apache/manifoldcf/crawler/authorities/DC...
Author: kwright
Date: Wed Jul 10 01:50:34 2013
New Revision: 1501633
URL: http://svn.apache.org/r1501633
Log:
Pull up branch changes from CONNECTORS-731 branch. Part of CONNECTORS-731.
Added:
manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/authorities/
- copied from r1501632, manifoldcf/branches/CONNECTORS-731/connectors/jira/connector/src/main/java/org/apache/manifoldcf/authorities/
manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraUserQueryResults.java
- copied unchanged from r1501632, manifoldcf/branches/CONNECTORS-731/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraUserQueryResults.java
manifoldcf/trunk/connectors/jira/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/
- copied from r1501632, manifoldcf/branches/CONNECTORS-731/connectors/jira/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/
manifoldcf/trunk/connectors/jira/connector/src/main/resources/org/apache/manifoldcf/authorities/
- copied from r1501632, manifoldcf/branches/CONNECTORS-731/connectors/jira/connector/src/main/resources/org/apache/manifoldcf/authorities/
Modified:
manifoldcf/trunk/ (props changed)
manifoldcf/trunk/build.xml
manifoldcf/trunk/connectors/activedirectory/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/activedirectory/ActiveDirectoryAuthority.java
manifoldcf/trunk/connectors/documentum/connector/src/main/java/org/apache/manifoldcf/crawler/authorities/DCTM/AuthorityConnector.java
manifoldcf/trunk/connectors/documentum/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/DCTM/DCTM.java
manifoldcf/trunk/connectors/dropbox/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/dropbox/DropboxRepositoryConnector.java
manifoldcf/trunk/connectors/filenet/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/filenet/FilenetConnector.java
manifoldcf/trunk/connectors/googledrive/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/googledrive/GoogleDriveRepositoryConnector.java
manifoldcf/trunk/connectors/jcifs/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/sharedrive/SharedDriveConnector.java
manifoldcf/trunk/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/jdbc/JDBCAuthority.java
manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraIssue.java
manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraJSONResponse.java
manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraQueryResults.java
manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraRepositoryConnector.java
manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraSession.java
manifoldcf/trunk/connectors/jira/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/jira/common_en_US.properties
manifoldcf/trunk/connectors/jira/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/jira/common_ja_JP.properties
manifoldcf/trunk/connectors/jira/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/jira/editSpecification_jiraSecurity.html
manifoldcf/trunk/connectors/jira/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/jira/viewSpecification_jira.html
manifoldcf/trunk/connectors/ldap/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/ldap/LDAPAuthority.java
manifoldcf/trunk/connectors/livelink/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/livelink/LivelinkAuthority.java
manifoldcf/trunk/connectors/livelink/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/livelink/LivelinkConnector.java
manifoldcf/trunk/connectors/meridio/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/meridio/MeridioAuthority.java
manifoldcf/trunk/connectors/meridio/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/meridio/MeridioConnector.java
manifoldcf/trunk/connectors/sharepoint/ (props changed)
manifoldcf/trunk/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/sharepoint/SharePointRepository.java
manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/authorities/authorities/BaseAuthorityConnector.java
manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/authorities/interfaces/IAuthorityConnector.java
manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/IRepositoryConnector.java
manifoldcf/trunk/site/src/documentation/content/xdocs/en_US/end-user-documentation.xml
Propchange: manifoldcf/trunk/
------------------------------------------------------------------------------
Merged /manifoldcf/branches/CONNECTORS-731:r1499391-1501632
Modified: manifoldcf/trunk/build.xml
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/build.xml?rev=1501633&r1=1501632&r2=1501633&view=diff
==============================================================================
--- manifoldcf/trunk/build.xml (original)
+++ manifoldcf/trunk/build.xml Wed Jul 10 01:50:34 2013
@@ -1681,6 +1681,11 @@
<param name="connector-label" value="Jira"/>
<param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.jira.JiraRepositoryConnector"/>
</antcall>
+ <antcall target="general-add-authority-connector">
+ <param name="connector-name" value="jira"/>
+ <param name="connector-label" value="Jira"/>
+ <param name="connector-class" value="org.apache.manifoldcf.authorities.authorities.jira.JiraAuthorityConnector"/>
+ </antcall>
</target>
<target name="deliver-jira-connector-doc" depends="calculate-jira-doc-condition" if="jira-doc.include">
Modified: manifoldcf/trunk/connectors/activedirectory/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/activedirectory/ActiveDirectoryAuthority.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/activedirectory/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/activedirectory/ActiveDirectoryAuthority.java?rev=1501633&r1=1501632&r2=1501633&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/activedirectory/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/activedirectory/ActiveDirectoryAuthority.java (original)
+++ manifoldcf/trunk/connectors/activedirectory/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/activedirectory/ActiveDirectoryAuthority.java Wed Jul 10 01:50:34 2013
@@ -63,14 +63,6 @@ public class ActiveDirectoryAuthority ex
/** The length of time in milliseconds that the connection remains idle before expiring. Currently 5 minutes. */
private static final long expirationInterval = 300000L;
- /** This is the active directory global deny token. This should be ingested with all documents. */
- private static final String globalDenyToken = "DEAD_AUTHORITY";
-
- private static final AuthorizationResponse unreachableResponse = new AuthorizationResponse(new String[]{globalDenyToken},
- AuthorizationResponse.RESPONSE_UNREACHABLE);
- private static final AuthorizationResponse userNotFoundResponse = new AuthorizationResponse(new String[]{globalDenyToken},
- AuthorizationResponse.RESPONSE_USERNOTFOUND);
-
/** Constructor.
*/
public ActiveDirectoryAuthority()
@@ -318,7 +310,7 @@ public class ActiveDirectoryAuthority ex
if (domainController == null)
{
// No domain controller found for the user, so return "user not found".
- return userNotFoundResponse;
+ return RESPONSE_USERNOTFOUND;
}
// Look up connection parameters
@@ -326,7 +318,7 @@ public class ActiveDirectoryAuthority ex
if (dcParams == null)
{
// No domain controller, even though it's mentioned in a rule
- return userNotFoundResponse;
+ return RESPONSE_USERNOTFOUND;
}
// Use the complete fqn if the field is the "userPrincipalName"
@@ -361,7 +353,7 @@ public class ActiveDirectoryAuthority ex
//Get DistinguishedName (for this method we are using DomainPart as a searchBase ie: DC=qa-ad-76,DC=metacarta,DC=com")
String searchBase = getDistinguishedName(ctx, userPart, domainsb.toString(), userACLsUsername);
if (searchBase == null)
- return userNotFoundResponse;
+ return RESPONSE_USERNOTFOUND;
//specify the LDAP search filter
String searchFilter = "(objectClass=user)";
@@ -412,7 +404,7 @@ public class ActiveDirectoryAuthority ex
}
if (theGroups.size() == 0)
- return userNotFoundResponse;
+ return RESPONSE_USERNOTFOUND;
// All users get certain well-known groups
theGroups.add("S-1-1-0");
@@ -431,12 +423,12 @@ public class ActiveDirectoryAuthority ex
catch (NameNotFoundException e)
{
// This means that the user doesn't exist
- return userNotFoundResponse;
+ return RESPONSE_USERNOTFOUND;
}
catch (NamingException e)
{
// Unreachable
- return unreachableResponse;
+ return RESPONSE_UNREACHABLE;
}
}
@@ -448,7 +440,7 @@ public class ActiveDirectoryAuthority ex
public AuthorizationResponse getDefaultAuthorizationResponse(String userName)
{
// The default response if the getConnection method fails
- return unreachableResponse;
+ return RESPONSE_UNREACHABLE;
}
// UI support methods.
Modified: manifoldcf/trunk/connectors/documentum/connector/src/main/java/org/apache/manifoldcf/crawler/authorities/DCTM/AuthorityConnector.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/documentum/connector/src/main/java/org/apache/manifoldcf/crawler/authorities/DCTM/AuthorityConnector.java?rev=1501633&r1=1501632&r2=1501633&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/documentum/connector/src/main/java/org/apache/manifoldcf/crawler/authorities/DCTM/AuthorityConnector.java (original)
+++ manifoldcf/trunk/connectors/documentum/connector/src/main/java/org/apache/manifoldcf/crawler/authorities/DCTM/AuthorityConnector.java Wed Jul 10 01:50:34 2013
@@ -51,13 +51,8 @@ public class AuthorityConnector extends
protected boolean useSystemAcls = true;
// Documentum has no "deny" tokens, and its document acls cannot be empty, so no local authority deny token is required.
- // However, it is felt that we need to be suspenders-and-belt, so here is the deny token.
+ // However, it is felt that we need to be suspenders-and-belt, so we use the deny token.
// The documentum tokens are of the form xxx:yyy, so they cannot collide with the standard deny token.
- protected static final String denyToken = "DEAD_AUTHORITY";
-
- protected static final AuthorizationResponse unreachableResponse = new AuthorizationResponse(new String[]{denyToken},AuthorizationResponse.RESPONSE_UNREACHABLE);
- protected static final AuthorizationResponse userNotFoundResponse = new AuthorizationResponse(new String[]{denyToken},AuthorizationResponse.RESPONSE_USERNOTFOUND);
- protected static final AuthorizationResponse userUnauthorizedResponse = new AuthorizationResponse(new String[]{denyToken},AuthorizationResponse.RESPONSE_USERUNAUTHORIZED);
/** Cache manager. */
protected ICacheManager cacheManager = null;
@@ -528,7 +523,7 @@ public class AuthorityConnector extends
{
if (Logging.authorityConnectors.isDebugEnabled())
Logging.authorityConnectors.debug("DCTM: No user found for username '" + strUserName + "'");
- response = userNotFoundResponse;
+ response = RESPONSE_USERNOTFOUND;
return;
}
@@ -536,7 +531,7 @@ public class AuthorityConnector extends
{
if (Logging.authorityConnectors.isDebugEnabled())
Logging.authorityConnectors.debug("DCTM: User found for username '" + strUserName + "' but the account is not active.");
- response = userUnauthorizedResponse;
+ response = RESPONSE_USERUNAUTHORIZED;
return;
}
@@ -741,7 +736,7 @@ public class AuthorityConnector extends
if (noSession)
{
Logging.authorityConnectors.warn("DCTM: Transient error checking authorization: "+e.getMessage(),e);
- return unreachableResponse;
+ return RESPONSE_UNREACHABLE;
}
session = null;
lastSessionFetch = -1L;
@@ -820,7 +815,7 @@ public class AuthorityConnector extends
if (noSession)
{
Logging.authorityConnectors.warn("DCTM: Transient error checking authorization: "+e.getMessage(),e);
- return unreachableResponse;
+ return RESPONSE_UNREACHABLE;
}
session = null;
lastSessionFetch = -1L;
@@ -835,7 +830,7 @@ public class AuthorityConnector extends
{
Logging.authorityConnectors.warn("DCTM: Transient error checking authorization: "+e.getMessage(),e);
// Transient: Treat as if user does not exist, not like credentials invalid.
- return unreachableResponse;
+ return RESPONSE_UNREACHABLE;
}
throw new ManifoldCFException(e.getMessage(),e);
}
@@ -848,7 +843,7 @@ public class AuthorityConnector extends
@Override
public AuthorizationResponse getDefaultAuthorizationResponse(String userName)
{
- return unreachableResponse;
+ return RESPONSE_UNREACHABLE;
}
protected static String insensitiveMatch(boolean insensitive, String field, String value)
Modified: manifoldcf/trunk/connectors/documentum/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/DCTM/DCTM.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/documentum/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/DCTM/DCTM.java?rev=1501633&r1=1501632&r2=1501633&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/documentum/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/DCTM/DCTM.java (original)
+++ manifoldcf/trunk/connectors/documentum/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/DCTM/DCTM.java Wed Jul 10 01:50:34 2013
@@ -65,7 +65,7 @@ public class DCTM extends org.apache.man
/** Documentum has no "deny" tokens, and its document acls cannot be empty, so no local authority deny token is required.
* However, it is felt that we need to be suspenders-and-belt, so here is the deny token.
* The documentum tokens are of the form xxx:yyy, so they cannot collide with the standard deny token. */
- private static final String denyToken = "DEAD_AUTHORITY";
+ private static final String denyToken = GLOBAL_DENY_TOKEN;
protected class GetSessionThread extends Thread
{
Modified: manifoldcf/trunk/connectors/dropbox/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/dropbox/DropboxRepositoryConnector.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/dropbox/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/dropbox/DropboxRepositoryConnector.java?rev=1501633&r1=1501632&r2=1501633&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/dropbox/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/dropbox/DropboxRepositoryConnector.java (original)
+++ manifoldcf/trunk/connectors/dropbox/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/dropbox/DropboxRepositoryConnector.java Wed Jul 10 01:50:34 2013
@@ -791,9 +791,10 @@ public class DropboxRepositoryConnector
public void run() {
try {
session.getSeeds(seedBuffer,path,25000); //upper limit on files to get supported by dropbox api in a single directory
- seedBuffer.signalDone();
} catch (Throwable e) {
this.exception = e;
+ } finally {
+ seedBuffer.signalDone();
}
}
Modified: manifoldcf/trunk/connectors/filenet/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/filenet/FilenetConnector.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/filenet/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/filenet/FilenetConnector.java?rev=1501633&r1=1501632&r2=1501633&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/filenet/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/filenet/FilenetConnector.java (original)
+++ manifoldcf/trunk/connectors/filenet/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/filenet/FilenetConnector.java Wed Jul 10 01:50:34 2013
@@ -104,7 +104,7 @@ public class FilenetConnector extends or
protected String docURIPrefix = null;
/** Deny access token for default authority */
- private final static String defaultAuthorityDenyToken = "DEAD_AUTHORITY";
+ private final static String defaultAuthorityDenyToken = GLOBAL_DENY_TOKEN;
protected class GetSessionThread extends Thread
{
Modified: manifoldcf/trunk/connectors/googledrive/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/googledrive/GoogleDriveRepositoryConnector.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/googledrive/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/googledrive/GoogleDriveRepositoryConnector.java?rev=1501633&r1=1501632&r2=1501633&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/googledrive/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/googledrive/GoogleDriveRepositoryConnector.java (original)
+++ manifoldcf/trunk/connectors/googledrive/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/googledrive/GoogleDriveRepositoryConnector.java Wed Jul 10 01:50:34 2013
@@ -845,9 +845,10 @@ public class GoogleDriveRepositoryConnec
public void run() {
try {
session.getSeeds(seedBuffer, googleDriveQuery);
- seedBuffer.signalDone();
} catch (Throwable e) {
this.exception = e;
+ } finally {
+ seedBuffer.signalDone();
}
}
@@ -1241,9 +1242,10 @@ public class GoogleDriveRepositoryConnec
public void run() {
try {
session.getChildren(childBuffer, nodeId);
- childBuffer.signalDone();
} catch (Throwable e) {
this.exception = e;
+ } finally {
+ childBuffer.signalDone();
}
}
Modified: manifoldcf/trunk/connectors/jcifs/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/sharedrive/SharedDriveConnector.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/jcifs/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/sharedrive/SharedDriveConnector.java?rev=1501633&r1=1501632&r2=1501633&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/jcifs/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/sharedrive/SharedDriveConnector.java (original)
+++ manifoldcf/trunk/connectors/jcifs/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/sharedrive/SharedDriveConnector.java Wed Jul 10 01:50:34 2013
@@ -121,7 +121,7 @@ public class SharedDriveConnector extend
private NtlmPasswordAuthentication pa;
/** Deny access token for default authority */
- private final static String defaultAuthorityDenyToken = "DEAD_AUTHORITY";
+ private final static String defaultAuthorityDenyToken = GLOBAL_DENY_TOKEN;
/** Constructor.
*/
Modified: manifoldcf/trunk/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/jdbc/JDBCAuthority.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/jdbc/JDBCAuthority.java?rev=1501633&r1=1501632&r2=1501633&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/jdbc/JDBCAuthority.java (original)
+++ manifoldcf/trunk/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/jdbc/JDBCAuthority.java Wed Jul 10 01:50:34 2013
@@ -58,11 +58,6 @@ import org.apache.manifoldcf.crawler.sys
public class JDBCAuthority extends BaseAuthorityConnector {
public static final String _rcsid = "@(#)$Id: JDBCAuthority.java $";
- private static final String globalDenyToken = "DEAD_AUTHORITY";
- private static final AuthorizationResponse unreachableResponse = new AuthorizationResponse(new String[]{globalDenyToken},
- AuthorizationResponse.RESPONSE_UNREACHABLE);
- private static final AuthorizationResponse userNotFoundResponse = new AuthorizationResponse(new String[]{globalDenyToken},
- AuthorizationResponse.RESPONSE_USERNOTFOUND);
protected WrappedConnection connection = null;
protected String jdbcProvider = null;
protected String host = null;
@@ -224,16 +219,16 @@ public class JDBCAuthority extends BaseA
loadPS(ps, paramList);
ResultSet rs = ps.executeQuery();
if (rs == null) {
- return unreachableResponse;
+ return RESPONSE_UNREACHABLE;
}
String uid;
if (rs.next()) {
uid = rs.getString(1);
} else {
- return userNotFoundResponse;
+ return RESPONSE_USERNOTFOUND;
}
if (uid == null || uid.isEmpty()) {
- return unreachableResponse;
+ return RESPONSE_UNREACHABLE;
}
// now check tokens
@@ -247,7 +242,7 @@ public class JDBCAuthority extends BaseA
loadPS(ps, paramList);
rs = ps.executeQuery();
if (rs == null) {
- return unreachableResponse;
+ return RESPONSE_UNREACHABLE;
}
ArrayList<String> tokenArray = new ArrayList<String>();
while (rs.next()) {
@@ -268,7 +263,7 @@ public class JDBCAuthority extends BaseA
} catch (Exception e) {
// Unreachable
- return unreachableResponse;
+ return RESPONSE_UNREACHABLE;
}
}
Modified: manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraIssue.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraIssue.java?rev=1501633&r1=1501632&r2=1501633&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraIssue.java (original)
+++ manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraIssue.java Wed Jul 10 01:50:34 2013
@@ -49,54 +49,54 @@ public class JiraIssue extends JiraJSONR
}
public String getKey() {
- Object key = object.get(KEY_KEY);
+ Object key = ((JSONObject)object).get(KEY_KEY);
if (key == null)
return null;
return key.toString();
}
public String getSelf() {
- Object key = object.get(KEY_SELF);
+ Object key = ((JSONObject)object).get(KEY_SELF);
if (key == null)
return null;
return key.toString();
}
public Date getCreatedDate() {
- JSONObject fields = (JSONObject)object.get(KEY_FIELDS);
+ JSONObject fields = (JSONObject)((JSONObject)object).get(KEY_FIELDS);
if (fields == null)
return null;
- JSONObject createdDate = (JSONObject)fields.get(KEY_CREATED);
+ Object createdDate = fields.get(KEY_CREATED);
if (createdDate == null)
return null;
return DateParser.parseISO8601Date(createdDate.toString());
}
public Date getUpdatedDate() {
- JSONObject fields = (JSONObject)object.get(KEY_FIELDS);
+ JSONObject fields = (JSONObject)((JSONObject)object).get(KEY_FIELDS);
if (fields == null)
return null;
- JSONObject updatedDate = (JSONObject)fields.get(KEY_UPDATED);
+ Object updatedDate = fields.get(KEY_UPDATED);
if (updatedDate == null)
return null;
return DateParser.parseISO8601Date(updatedDate.toString());
}
public String getDescription() {
- JSONObject fields = (JSONObject)object.get(KEY_FIELDS);
+ JSONObject fields = (JSONObject)((JSONObject)object).get(KEY_FIELDS);
if (fields == null)
return null;
- JSONObject description = (JSONObject)fields.get(KEY_DESCRIPTION);
+ Object description = fields.get(KEY_DESCRIPTION);
if (description == null)
return null;
return description.toString();
}
public String getSummary() {
- JSONObject fields = (JSONObject)object.get(KEY_FIELDS);
+ JSONObject fields = (JSONObject)((JSONObject)object).get(KEY_FIELDS);
if (fields == null)
return null;
- JSONObject summary = (JSONObject)fields.get(KEY_DESCRIPTION);
+ Object summary = fields.get(KEY_SUMMARY);
if (summary == null)
return null;
return summary.toString();
@@ -104,7 +104,7 @@ public class JiraIssue extends JiraJSONR
public Map<String,String[]> getMetadata() {
Map<String,List<String>> map = new HashMap<String,List<String>>();
- JSONObject fields = (JSONObject)object.get(KEY_FIELDS);
+ JSONObject fields = (JSONObject)((JSONObject)object).get(KEY_FIELDS);
if (fields != null)
addMetadataToMap("", fields, map);
Modified: manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraJSONResponse.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraJSONResponse.java?rev=1501633&r1=1501632&r2=1501633&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraJSONResponse.java (original)
+++ manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraJSONResponse.java Wed Jul 10 01:50:34 2013
@@ -32,14 +32,14 @@ import org.json.simple.JSONObject;
*/
public class JiraJSONResponse {
- protected JSONObject object = null;
+ protected Object object = null;
public JiraJSONResponse() {
}
/** Receive a parsed JSON object.
*/
- public void acceptJSONObject(JSONObject object) {
+ public void acceptJSONObject(Object object) {
this.object = object;
}
Modified: manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraQueryResults.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraQueryResults.java?rev=1501633&r1=1501632&r2=1501633&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraQueryResults.java (original)
+++ manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraQueryResults.java Wed Jul 10 01:50:34 2013
@@ -34,23 +34,23 @@ public class JiraQueryResults extends Ji
// Specific keys we care about
private final static String KEY_TOTAL = "total";
private final static String KEY_ISSUES = "issues";
- private final static String KEY_ID = "id";
+ private final static String KEY_KEY = "key";
public JiraQueryResults() {
super();
}
public Long getTotal() {
- return (Long)object.get(KEY_TOTAL);
+ return (Long)((JSONObject)object).get(KEY_TOTAL);
}
public void pushIds(XThreadStringBuffer seedBuffer)
throws IOException, InterruptedException {
- JSONArray issues = (JSONArray)object.get(KEY_ISSUES);
+ JSONArray issues = (JSONArray)((JSONObject)object).get(KEY_ISSUES);
for (Object issue : issues) {
if (issue instanceof JSONObject) {
JSONObject jo = (JSONObject)issue;
- seedBuffer.add(jo.get(KEY_ID).toString());
+ seedBuffer.add(jo.get(KEY_KEY).toString());
}
}
}
Modified: manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraRepositoryConnector.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraRepositoryConnector.java?rev=1501633&r1=1501632&r2=1501633&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraRepositoryConnector.java (original)
+++ manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraRepositoryConnector.java Wed Jul 10 01:50:34 2013
@@ -64,6 +64,8 @@ public class JiraRepositoryConnector ext
// Nodes
private static final String JOB_STARTPOINT_NODE_TYPE = "startpoint";
private static final String JOB_QUERY_ATTRIBUTE = "query";
+ private static final String JOB_SECURITY_NODE_TYPE = "security";
+ private static final String JOB_VALUE_ATTRIBUTE = "value";
private static final String JOB_ACCESS_NODE_TYPE = "access";
private static final String JOB_TOKEN_ATTRIBUTE = "token";
@@ -480,6 +482,7 @@ public class JiraRepositoryConnector ext
*/
private static void fillInJIRASecuritySpecificationMap(Map<String, Object> newMap, DocumentSpecification ds) {
List<Map<String,String>> accessTokenList = new ArrayList<Map<String,String>>();
+ String securityValue = "on";
for (int i = 0; i < ds.getChildCount(); i++) {
SpecificationNode sn = ds.getChild(i);
if (sn.getType().equals(JOB_ACCESS_NODE_TYPE)) {
@@ -487,9 +490,12 @@ public class JiraRepositoryConnector ext
Map<String,String> accessMap = new HashMap<String,String>();
accessMap.put("TOKEN",token);
accessTokenList.add(accessMap);
+ } else if (sn.getType().equals(JOB_SECURITY_NODE_TYPE)) {
+ securityValue = sn.getAttributeValue(JOB_VALUE_ATTRIBUTE);
}
}
newMap.put("ACCESSTOKENS", accessTokenList);
+ newMap.put("SECURITYON", securityValue);
}
/**
@@ -549,6 +555,22 @@ public class JiraRepositoryConnector ext
ds.addChild(ds.getChildCount(), node);
}
+ String securityOn = variableContext.getParameter("specsecurity");
+ if (securityOn != null) {
+ // Delete all security records first
+ int i = 0;
+ while (i < ds.getChildCount()) {
+ SpecificationNode sn = ds.getChild(i);
+ if (sn.getType().equals(JOB_SECURITY_NODE_TYPE))
+ ds.removeChild(i);
+ else
+ i++;
+ }
+ SpecificationNode node = new SpecificationNode(JOB_SECURITY_NODE_TYPE);
+ node.setAttribute(JOB_VALUE_ATTRIBUTE,securityOn);
+ ds.addChild(ds.getChildCount(),node);
+ }
+
String xc = variableContext.getParameter("tokencount");
if (xc != null) {
// Delete all tokens first
@@ -711,11 +733,11 @@ public class JiraRepositoryConnector ext
// Pick up the paths, and add them to the activities, before we join with the child thread.
while (true) {
// The only kind of exceptions this can throw are going to shut the process down.
- String issueID = seedBuffer.fetch();
- if (issueID == null)
+ String issueKey = seedBuffer.fetch();
+ if (issueKey == null)
break;
// Add the pageID to the queue
- activities.addSeedDocument("I"+issueID);
+ activities.addSeedDocument("I-"+issueKey);
}
} catch (InterruptedException e) {
wasInterrupted = true;
@@ -773,14 +795,14 @@ public class JiraRepositoryConnector ext
Logging.connectors.debug("JIRA: Inside processDocuments");
for (int i = 0; i < documentIdentifiers.length; i++) {
- // MHL for access tokens
+ String nodeId = documentIdentifiers[i];
+ String version = versions[i];
+
long startTime = System.currentTimeMillis();
String errorCode = "FAILED";
String errorDesc = StringUtils.EMPTY;
Long fileSize = null;
boolean doLog = false;
- String nodeId = documentIdentifiers[i];
- String version = versions[i];
try {
if (Logging.connectors.isDebugEnabled()) {
@@ -791,13 +813,17 @@ public class JiraRepositoryConnector ext
if (!scanOnly[i]) {
doLog = true;
- if (nodeId.startsWith("I")) {
+ if (nodeId.startsWith("I-")) {
// It's an issue
- String issueID = nodeId.substring(1);
- JiraIssue jiraFile = getIssue(issueID);
+ String issueKey = nodeId.substring(2);
+ JiraIssue jiraFile = getIssue(issueKey);
+ if (jiraFile == null) {
+ activities.deleteDocument(nodeId, version);
+ continue;
+ }
if (Logging.connectors.isDebugEnabled()) {
- Logging.connectors.debug("JIRA: have this file:\t" + jiraFile.getKey());
+ Logging.connectors.debug("JIRA: This issue exists: " + jiraFile.getKey());
}
// Unpack the version string
@@ -851,6 +877,7 @@ public class JiraRepositoryConnector ext
activities.ingestDocument(nodeId, version, documentURI, rd);
// No errors. Record the fact that we made it.
errorCode = "OK";
+ fileSize = new Long(documentBytes.length);
} finally {
is.close();
}
@@ -878,7 +905,7 @@ public class JiraRepositoryConnector ext
body.append(" : ");
body.append(description);
}
- return description.toString();
+ return body.toString();
}
/**
@@ -905,23 +932,33 @@ public class JiraRepositoryConnector ext
// Forced acls
String[] acls = getAcls(spec);
- // Sort it,
- java.util.Arrays.sort(acls);
+ if (acls != null)
+ java.util.Arrays.sort(acls);
String[] rval = new String[documentIdentifiers.length];
for (int i = 0; i < rval.length; i++) {
String nodeId = documentIdentifiers[i];
- if (nodeId.startsWith("I")) {
+ if (nodeId.startsWith("I-")) {
// It is an issue
- String issueID = nodeId.substring(1);
+ String issueID = nodeId.substring(2);
JiraIssue jiraFile = getIssue(issueID);
Date rev = jiraFile.getUpdatedDate();
if (rev != null) {
StringBuilder sb = new StringBuilder();
+ String[] aclsToUse;
+ if (acls == null) {
+ // Get acls from issue
+ List<String> users = getUsers(issueID);
+ aclsToUse = (String[])users.toArray(new String[0]);
+ java.util.Arrays.sort(aclsToUse);
+ } else {
+ aclsToUse = acls;
+ }
+
// Acls
- packList(sb,acls,'+');
- if (acls.length > 0) {
+ packList(sb,aclsToUse,'+');
+ if (aclsToUse.length > 0) {
sb.append('+');
pack(sb,defaultAuthorityDenyToken,'+');
} else
@@ -940,7 +977,7 @@ public class JiraRepositoryConnector ext
/** Grab forced acl out of document specification.
*@param spec is the document specification.
- *@return the acls.
+ *@return the acls, or null if security is on (and the acls need to be fetched)
*/
protected static String[] getAcls(DocumentSpecification spec) {
Set<String> map = new HashSet<String>();
@@ -950,6 +987,11 @@ public class JiraRepositoryConnector ext
String token = sn.getAttributeValue(JOB_TOKEN_ATTRIBUTE);
map.add(token);
}
+ else if (sn.getType().equals(JOB_SECURITY_NODE_TYPE)) {
+ String onOff = sn.getAttributeValue(JOB_VALUE_ATTRIBUTE);
+ if (onOff != null && onOff.equals("on"))
+ return null;
+ }
}
String[] rval = new String[map.size()];
@@ -975,6 +1017,70 @@ public class JiraRepositoryConnector ext
// Background threads
+ protected static class GetUsersThread extends Thread {
+
+ protected final JiraSession session;
+ protected final String issueKey;
+ protected Throwable exception = null;
+ protected List<String> result = null;
+
+ public GetUsersThread(JiraSession session, String issueKey) {
+ super();
+ this.session = session;
+ this.issueKey = issueKey;
+ setDaemon(true);
+ }
+
+ public void run() {
+ try {
+ result = session.getUsers(issueKey);
+ } catch (Throwable e) {
+ this.exception = e;
+ }
+ }
+
+ public void finishUp()
+ throws InterruptedException, IOException {
+ join();
+ Throwable thr = exception;
+ if (thr != null) {
+ if (thr instanceof IOException) {
+ throw (IOException) thr;
+ } else if (thr instanceof RuntimeException) {
+ throw (RuntimeException) thr;
+ } else {
+ throw (Error) thr;
+ }
+ }
+ }
+
+ public List<String> getResult() {
+ return result;
+ }
+
+ }
+
+ protected List<String> getUsers(String issueKey) throws ManifoldCFException, ServiceInterruption {
+ GetUsersThread t = new GetUsersThread(getSession(), issueKey);
+ try {
+ t.start();
+ t.finishUp();
+ return t.getResult();
+ } catch (InterruptedException e) {
+ t.interrupt();
+ throw new ManifoldCFException("Interrupted: " + e.getMessage(), e,
+ ManifoldCFException.INTERRUPTED);
+ } catch (java.net.SocketTimeoutException e) {
+ handleIOException(e);
+ } catch (InterruptedIOException e) {
+ t.interrupt();
+ handleIOException(e);
+ } catch (IOException e) {
+ handleIOException(e);
+ }
+ return null;
+ }
+
protected static class CheckConnectionThread extends Thread {
protected final JiraSession session;
@@ -1049,9 +1155,10 @@ public class JiraRepositoryConnector ext
public void run() {
try {
session.getSeeds(seedBuffer, jiraDriveQuery);
- seedBuffer.signalDone();
} catch (Throwable e) {
this.exception = e;
+ } finally {
+ seedBuffer.signalDone();
}
}
Modified: manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraSession.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraSession.java?rev=1501633&r1=1501632&r2=1501633&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraSession.java (original)
+++ manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraSession.java Wed Jul 10 01:50:34 2013
@@ -35,6 +35,8 @@ import java.net.URLEncoder;
import java.util.Map;
import java.util.HashMap;
+import java.util.List;
+import java.util.ArrayList;
import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.client.HttpClient;
@@ -141,7 +143,7 @@ public class JiraSession {
connectionManager = null;
}
- private static JSONObject convertToJSON(HttpResponse httpResponse)
+ private static Object convertToJSON(HttpResponse httpResponse)
throws IOException {
HttpEntity entity = httpResponse.getEntity();
if (entity != null) {
@@ -151,7 +153,7 @@ public class JiraSession {
if (charSet == null)
charSet = "utf-8";
Reader r = new InputStreamReader(is,charSet);
- return (JSONObject)JSONValue.parse(r);
+ return JSONValue.parse(r);
} finally {
is.close();
}
@@ -199,7 +201,7 @@ public class JiraSession {
int resultCode = httpResponse.getStatusLine().getStatusCode();
if (resultCode != 200)
throw new IOException("Unexpected result code "+resultCode+": "+convertToString(httpResponse));
- JSONObject jo = convertToJSON(httpResponse);
+ Object jo = convertToJSON(httpResponse);
response.acceptJSONObject(jo);
} finally {
method.abort();
@@ -238,11 +240,30 @@ public class JiraSession {
}
/**
+ * Get the list of users that can see the specified issue.
+ */
+ public List<String> getUsers(String issueKey)
+ throws IOException {
+ List<String> rval = new ArrayList<String>();
+ long startAt = 0L;
+ long setSize = 100L;
+ while (true) {
+ JiraUserQueryResults qr = new JiraUserQueryResults();
+ getRest("user/viewissue/search?username=&issueKey="+URLEncoder.encode(issueKey,"utf-8")+"&maxResults=" + setSize + "&startAt=" + startAt, qr);
+ qr.getNames(rval);
+ startAt += setSize;
+ if (rval.size() < startAt)
+ break;
+ }
+ return rval;
+ }
+
+ /**
* Get an individual issue.
*/
- public JiraIssue getIssue(String id) throws IOException {
+ public JiraIssue getIssue(String issueKey) throws IOException {
JiraIssue ji = new JiraIssue();
- getRest("issue/" + id, ji);
+ getRest("issue/" + URLEncoder.encode(issueKey,"utf-8"), ji);
return ji;
}
Modified: manifoldcf/trunk/connectors/jira/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/jira/common_en_US.properties
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/jira/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/jira/common_en_US.properties?rev=1501633&r1=1501632&r2=1501633&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/jira/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/jira/common_en_US.properties (original)
+++ manifoldcf/trunk/connectors/jira/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/jira/common_en_US.properties Wed Jul 10 01:50:34 2013
@@ -32,6 +32,10 @@ JiraRepositoryConnector.JiraPathMustBegi
JiraRepositoryConnector.JiraQueryColon=JIRA query:
JiraRepositoryConnector.SeedQueryCannotBeNull=Seed query cannot be null
+JiraRepositoryConnector.SecurityColon=Security:
+JiraRepositoryConnector.Enabled=Enabled
+JiraRepositoryConnector.Disabled=Disabled
+
JiraRepositoryConnector.NoAccessTokensPresent=No access tokens present
JiraRepositoryConnector.Add=Add
JiraRepositoryConnector.AddAccessToken=Add access token
Modified: manifoldcf/trunk/connectors/jira/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/jira/common_ja_JP.properties
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/jira/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/jira/common_ja_JP.properties?rev=1501633&r1=1501632&r2=1501633&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/jira/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/jira/common_ja_JP.properties (original)
+++ manifoldcf/trunk/connectors/jira/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/jira/common_ja_JP.properties Wed Jul 10 01:50:34 2013
@@ -32,6 +32,10 @@ JiraRepositoryConnector.JiraPathMustBegi
JiraRepositoryConnector.JiraQueryColon=JIRA query:
JiraRepositoryConnector.SeedQueryCannotBeNull=Seed query cannot be null
+JiraRepositoryConnector.SecurityColon=Security:
+JiraRepositoryConnector.Enabled=Enabled
+JiraRepositoryConnector.Disabled=Disabled
+
JiraRepositoryConnector.NoAccessTokensPresent=No access tokens present
JiraRepositoryConnector.Add=Add
JiraRepositoryConnector.AddAccessToken=Add access token
Modified: manifoldcf/trunk/connectors/jira/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/jira/editSpecification_jiraSecurity.html
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/jira/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/jira/editSpecification_jiraSecurity.html?rev=1501633&r1=1501632&r2=1501633&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/jira/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/jira/editSpecification_jiraSecurity.html (original)
+++ manifoldcf/trunk/connectors/jira/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/jira/editSpecification_jiraSecurity.html Wed Jul 10 01:50:34 2013
@@ -20,6 +20,26 @@
<table class="displaytable">
<tr><td class="separator" colspan="2"><hr/></td></tr>
+ <tr>
+ <td class="description"><nobr>$Encoder.bodyEscape($ResourceBundle.getString('JiraRepositoryConnector.SecurityColon'))</nobr></td>
+ <td class="value">
+ #if($SECURITYON == 'on')
+ <input type="radio" name="specsecurity" value="on" checked="true"/>
+ #else
+ <input type="radio" name="specsecurity" value="on"/>
+ #end
+ $Encoder.bodyEscape($ResourceBundle.getString('JiraRepositoryConnector.Enabled'))
+ #if($SECURITYON == 'off')
+ <input type="radio" name="specsecurity" value="off" checked="true"/>
+ #else
+ <input type="radio" name="specsecurity" value="off"/>
+ #end
+ $Encoder.bodyEscape($ResourceBundle.getString('JiraRepositoryConnector.Disabled'))
+ </td>
+ </tr>
+
+ <tr><td class="separator" colspan="2"><hr/></td></tr>
+
#set($atcounter = 0)
#foreach($atoken in $ACCESSTOKENS)
@@ -63,6 +83,8 @@
#else
+<input type="hidden" name="specsecurity" value="$SECURITYON"/>
+
#set($atcounter = 0)
#foreach($atoken in $ACCESSTOKENS)
<input type="hidden" name="spectoken_$atcounter" value="$Encoder.attributeEscape($atoken.get('TOKEN'))"/>
Modified: manifoldcf/trunk/connectors/jira/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/jira/viewSpecification_jira.html
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/jira/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/jira/viewSpecification_jira.html?rev=1501633&r1=1501632&r2=1501633&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/jira/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/jira/viewSpecification_jira.html (original)
+++ manifoldcf/trunk/connectors/jira/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/jira/viewSpecification_jira.html Wed Jul 10 01:50:34 2013
@@ -26,6 +26,19 @@
</tr>
<tr><td class="separator" colspan="2"><hr/></td></tr>
<tr>
+ <td class="description">
+ <nobr>$Encoder.bodyEscape($ResourceBundle.getString('JiraRepositoryConnector.SecurityColon'))</nobr>
+ </td>
+ <td class="value">
+#if($SECURITYON == 'on')
+ <nobr>$Encoder.bodyEscape($ResourceBundle.getString('JiraRepositoryConnector.Enabled'))</nobr>
+#else
+ <nobr>$Encoder.bodyEscape($ResourceBundle.getString('JiraRepositoryConnector.Disabled'))</nobr>
+#end
+ </td>
+ </tr>
+ <tr><td class="separator" colspan="2"><hr/></td></tr>
+ <tr>
#if($ACCESSTOKENS.size() == 0)
<td class="message" colspan="2">
$Encoder.bodyEscape($ResourceBundle.getString('JiraRepositoryConnector.NoAccessTokensPresent'))
Modified: manifoldcf/trunk/connectors/ldap/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/ldap/LDAPAuthority.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/ldap/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/ldap/LDAPAuthority.java?rev=1501633&r1=1501632&r2=1501633&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/ldap/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/ldap/LDAPAuthority.java (original)
+++ manifoldcf/trunk/connectors/ldap/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/ldap/LDAPAuthority.java Wed Jul 10 01:50:34 2013
@@ -44,15 +44,6 @@ public class LDAPAuthority extends org.a
*/
private LdapContext session = null;
private long sessionExpirationTime = -1L;
- /**
- * This is the active directory global deny token. This should be ingested
- * with all documents.
- */
- private static final String globalDenyToken = "DEAD_AUTHORITY";
- private static final AuthorizationResponse unreachableResponse = new AuthorizationResponse(new String[]{globalDenyToken},
- AuthorizationResponse.RESPONSE_UNREACHABLE);
- private static final AuthorizationResponse userNotFoundResponse = new AuthorizationResponse(new String[]{globalDenyToken},
- AuthorizationResponse.RESPONSE_USERNOTFOUND);
private ConfigParams parameters;
private String serverName;
private String serverPort;
@@ -317,7 +308,7 @@ public class LDAPAuthority extends org.a
//find user in LDAP tree
SearchResult usrRecord = getUserEntry(session, userName);
if (usrRecord == null) {
- return userNotFoundResponse;
+ return RESPONSE_USERNOTFOUND;
}
ArrayList theGroups = new ArrayList();
@@ -371,10 +362,10 @@ public class LDAPAuthority extends org.a
} catch (NameNotFoundException e) {
// This means that the user doesn't exist
- return userNotFoundResponse;
+ return RESPONSE_USERNOTFOUND;
} catch (NamingException e) {
// Unreachable
- return unreachableResponse;
+ return RESPONSE_UNREACHABLE;
}
}
@@ -388,7 +379,7 @@ public class LDAPAuthority extends org.a
@Override
public AuthorizationResponse getDefaultAuthorizationResponse(String userName) {
// The default response if the getConnection method fails
- return unreachableResponse;
+ return RESPONSE_UNREACHABLE;
}
// UI support methods.
Modified: manifoldcf/trunk/connectors/livelink/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/livelink/LivelinkAuthority.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/livelink/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/livelink/LivelinkAuthority.java?rev=1501633&r1=1501632&r2=1501633&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/livelink/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/livelink/LivelinkAuthority.java (original)
+++ manifoldcf/trunk/connectors/livelink/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/livelink/LivelinkAuthority.java Wed Jul 10 01:50:34 2013
@@ -89,11 +89,6 @@ public class LivelinkAuthority extends o
// Livelink does not have "deny" permissions, and there is no such thing as a document with no tokens, so it is safe to not have a local "deny" token.
// However, people feel that a suspenders-and-belt approach is called for, so this restriction has been added.
// Livelink tokens are numbers, "SYSTEM", or "GUEST", so they can't collide with the standard form.
- private static final String denyToken = "DEAD_AUTHORITY";
- private static final AuthorizationResponse unreachableResponse = new AuthorizationResponse(new String[]{denyToken},
- AuthorizationResponse.RESPONSE_UNREACHABLE);
- private static final AuthorizationResponse userNotFoundResponse = new AuthorizationResponse(new String[]{denyToken},
- AuthorizationResponse.RESPONSE_USERNOTFOUND);
/** Constructor.
*/
@@ -446,14 +441,14 @@ public class LivelinkAuthority extends o
{
if (Logging.authorityConnectors.isDebugEnabled())
Logging.authorityConnectors.debug("Livelink: Livelink user '"+domainAndUser+"' does not exist");
- return userNotFoundResponse;
+ return RESPONSE_USERNOTFOUND;
}
if (status != 0)
{
Logging.authorityConnectors.warn("Livelink: User '"+domainAndUser+"' GetUserInfo error # "+Integer.toString(status)+" "+llServer.getErrors());
// The server is probably down.
- return unreachableResponse;
+ return RESPONSE_UNREACHABLE;
}
int deleted = userObject.toInteger("Deleted");
@@ -462,7 +457,7 @@ public class LivelinkAuthority extends o
if (Logging.authorityConnectors.isDebugEnabled())
Logging.authorityConnectors.debug("Livelink: Livelink user '"+domainAndUser+"' has been deleted");
// Since the user cannot become undeleted, then this should be treated as 'user does not exist'.
- return userNotFoundResponse;
+ return RESPONSE_USERNOTFOUND;
}
int privs = userObject.toInteger("UserPrivileges");
if ((privs & LAPI_USERS.PRIV_PERM_WORLD) == LAPI_USERS.PRIV_PERM_WORLD)
@@ -476,7 +471,7 @@ public class LivelinkAuthority extends o
{
if (Logging.authorityConnectors.isDebugEnabled())
Logging.authorityConnectors.debug("Livelink: Livelink error looking up user rights for '"+domainAndUser+"' - user does not exist");
- return userNotFoundResponse;
+ return RESPONSE_USERNOTFOUND;
}
if (status != 0)
@@ -485,7 +480,7 @@ public class LivelinkAuthority extends o
// right error code, so just stuff it in the log.
Logging.authorityConnectors.warn("Livelink: For user '"+domainAndUser+"', ListRights error # "+Integer.toString(status)+" "+llServer.getErrors());
// An error code at this level has to indicate a suddenly unreachable authority
- return unreachableResponse;
+ return RESPONSE_UNREACHABLE;
}
// Go through the individual objects, and get their IDs. These id's will be the access tokens
@@ -549,7 +544,7 @@ public class LivelinkAuthority extends o
catch (ServiceInterruption e)
{
Logging.authorityConnectors.warn("Livelink: Server seems to be down: "+e.getMessage(),e);
- return unreachableResponse;
+ return RESPONSE_UNREACHABLE;
}
}
@@ -561,7 +556,7 @@ public class LivelinkAuthority extends o
public AuthorizationResponse getDefaultAuthorizationResponse(String userName)
{
// The default response if the getConnection method fails
- return unreachableResponse;
+ return RESPONSE_UNREACHABLE;
}
// UI support methods.
Modified: manifoldcf/trunk/connectors/livelink/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/livelink/LivelinkConnector.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/livelink/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/livelink/LivelinkConnector.java?rev=1501633&r1=1501632&r2=1501633&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/livelink/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/livelink/LivelinkConnector.java (original)
+++ manifoldcf/trunk/connectors/livelink/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/livelink/LivelinkConnector.java Wed Jul 10 01:50:34 2013
@@ -95,7 +95,7 @@ public class LivelinkConnector extends o
private final static String ACTIVITY_FETCH = "fetch document";
/** Deny access token for default authority */
- private final static String defaultAuthorityDenyToken = "DEAD_AUTHORITY";
+ private final static String defaultAuthorityDenyToken = GLOBAL_DENY_TOKEN;
// Livelink does not have "deny" permissions, and there is no such thing as a document with no tokens, so it is safe to not have a local "deny" token.
// However, people feel that a suspenders-and-belt approach is called for, so this restriction has been added.
Modified: manifoldcf/trunk/connectors/meridio/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/meridio/MeridioAuthority.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/meridio/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/meridio/MeridioAuthority.java?rev=1501633&r1=1501632&r2=1501633&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/meridio/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/meridio/MeridioAuthority.java (original)
+++ manifoldcf/trunk/connectors/meridio/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/meridio/MeridioAuthority.java Wed Jul 10 01:50:34 2013
@@ -73,15 +73,6 @@ public class MeridioAuthority extends or
final private static int MANAGE_DOCUMENT_PRIVILEGE = 17;
- /** Deny access token for Meridio. All tokens begin with "U" or with "G", except the blanket "READ_ALL" that I create.
- * However, we currently have code in the field, so I will continue ot use "DEAD_AUTHORITY" for that reason.
- */
- private final static String denyToken = "DEAD_AUTHORITY";
-
- private final static AuthorizationResponse unreachableResponse = new AuthorizationResponse(new String[]{denyToken},AuthorizationResponse.RESPONSE_UNREACHABLE);
- private final static AuthorizationResponse userNotFoundResponse = new AuthorizationResponse(new String[]{denyToken},AuthorizationResponse.RESPONSE_USERNOTFOUND);
-
-
/** Constructor.
*/
public MeridioAuthority() {}
@@ -551,7 +542,7 @@ public class MeridioAuthority extends or
{
if (Logging.authorityConnectors.isDebugEnabled())
Logging.authorityConnectors.debug("Meridio: User '" + userName + "' does not exist");
- return userNotFoundResponse;
+ return RESPONSE_USERNOTFOUND;
}
if (Logging.authorityConnectors.isDebugEnabled())
Logging.authorityConnectors.debug("Meridio: Found user - the User Id for '" + userName +
@@ -677,7 +668,7 @@ public class MeridioAuthority extends or
@Override
public AuthorizationResponse getDefaultAuthorizationResponse(String userName)
{
- return unreachableResponse;
+ return RESPONSE_UNREACHABLE;
}
// UI support methods.
Modified: manifoldcf/trunk/connectors/meridio/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/meridio/MeridioConnector.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/meridio/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/meridio/MeridioConnector.java?rev=1501633&r1=1501632&r2=1501633&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/meridio/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/meridio/MeridioConnector.java (original)
+++ manifoldcf/trunk/connectors/meridio/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/meridio/MeridioConnector.java Wed Jul 10 01:50:34 2013
@@ -71,7 +71,7 @@ public class MeridioConnector extends or
protected String urlVersionBase = null;
/** Deny access token for Meridio */
- private final static String denyToken = "DEAD_AUTHORITY";
+ private final static String denyToken = GLOBAL_DENY_TOKEN;
/** Deny access token for Active Directory, which is what we expect to be in place for forced acls */
private final static String defaultAuthorityDenyToken = "DEAD_AUTHORITY";
Propchange: manifoldcf/trunk/connectors/sharepoint/
------------------------------------------------------------------------------
Merged /manifoldcf/branches/CONNECTORS-731/connectors/sharepoint:r1499391-1501632
Modified: manifoldcf/trunk/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/sharepoint/SharePointRepository.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/sharepoint/SharePointRepository.java?rev=1501633&r1=1501632&r2=1501633&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/sharepoint/SharePointRepository.java (original)
+++ manifoldcf/trunk/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/sharepoint/SharePointRepository.java Wed Jul 10 01:50:34 2013
@@ -126,7 +126,7 @@ public class SharePointRepository extend
}
/** Deny access token for default authority */
- private final static String defaultAuthorityDenyToken = "DEAD_AUTHORITY";
+ private final static String defaultAuthorityDenyToken = GLOBAL_DENY_TOKEN;
/** Constructor.
*/
Modified: manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/authorities/authorities/BaseAuthorityConnector.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/authorities/authorities/BaseAuthorityConnector.java?rev=1501633&r1=1501632&r2=1501633&view=diff
==============================================================================
--- manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/authorities/authorities/BaseAuthorityConnector.java (original)
+++ manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/authorities/authorities/BaseAuthorityConnector.java Wed Jul 10 01:50:34 2013
@@ -34,6 +34,13 @@ public abstract class BaseAuthorityConne
{
public static final String _rcsid = "@(#)$Id: BaseAuthorityConnector.java 988245 2010-08-23 18:39:35Z kwright $";
+ protected static final AuthorizationResponse RESPONSE_UNREACHABLE = new AuthorizationResponse(new String[]{GLOBAL_DENY_TOKEN},
+ AuthorizationResponse.RESPONSE_UNREACHABLE);
+ protected static final AuthorizationResponse RESPONSE_USERNOTFOUND = new AuthorizationResponse(new String[]{GLOBAL_DENY_TOKEN},
+ AuthorizationResponse.RESPONSE_USERNOTFOUND);
+ protected static final AuthorizationResponse RESPONSE_USERUNAUTHORIZED = new AuthorizationResponse(new String[]{GLOBAL_DENY_TOKEN},
+ AuthorizationResponse.RESPONSE_USERUNAUTHORIZED);
+
/** Obtain the access tokens for a given user name.
*@param userName is the user name or identifier.
*@return the response tokens (according to the current authority).
Modified: manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/authorities/interfaces/IAuthorityConnector.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/authorities/interfaces/IAuthorityConnector.java?rev=1501633&r1=1501632&r2=1501633&view=diff
==============================================================================
--- manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/authorities/interfaces/IAuthorityConnector.java (original)
+++ manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/authorities/interfaces/IAuthorityConnector.java Wed Jul 10 01:50:34 2013
@@ -32,6 +32,9 @@ import java.io.*;
public interface IAuthorityConnector extends IConnector
{
+ /** This is the global deny token. This should be ingested with all documents. */
+ public static final String GLOBAL_DENY_TOKEN = "DEAD_AUTHORITY";
+
/** Obtain the access tokens for a given Active Directory user name.
*@param userName is the user name or identifier.
*@return the response tokens (according to the current authority).
Modified: manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/IRepositoryConnector.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/IRepositoryConnector.java?rev=1501633&r1=1501632&r2=1501633&view=diff
==============================================================================
--- manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/IRepositoryConnector.java (original)
+++ manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/IRepositoryConnector.java Wed Jul 10 01:50:34 2013
@@ -104,6 +104,9 @@ public interface IRepositoryConnector ex
public static final int JOBMODE_ONCEONLY = IJobDescription.TYPE_SPECIFIED;
public static final int JOBMODE_CONTINUOUS = IJobDescription.TYPE_CONTINUOUS;
+ /** This is the global deny token. This should be ingested with all documents. */
+ public static final String GLOBAL_DENY_TOKEN = "DEAD_AUTHORITY";
+
/** Tell the world what model this connector uses for addSeedDocuments().
* This must return a model value as specified above. The connector does not have to be connected
* for this method to be called.
Modified: manifoldcf/trunk/site/src/documentation/content/xdocs/en_US/end-user-documentation.xml
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/site/src/documentation/content/xdocs/en_US/end-user-documentation.xml?rev=1501633&r1=1501632&r2=1501633&view=diff
==============================================================================
--- manifoldcf/trunk/site/src/documentation/content/xdocs/en_US/end-user-documentation.xml (original)
+++ manifoldcf/trunk/site/src/documentation/content/xdocs/en_US/end-user-documentation.xml Wed Jul 10 01:50:34 2013
@@ -1998,7 +1998,7 @@ curl -XGET http://localhost:9200/index/_
<br/><br/>
<p>This tab allows you to specify the query which will be used to find documents for the indexing process. The query language is
specified on the <a href="https://confluence.atlassian.com/display/JIRA/Advanced+Searching">Jira Advanced Searching</a> site. Directories
- which meet the seed query are fully crawled as the query on applies to seeds.</p>
+ which meet the seed query are fully crawled as the query only applies to seeds.</p>
</section>
<section id="livelinkrepository">