In 
support/cas-server-support-gauth-couchdb/src/main/java/org/apereo/cas/couchdb/gauth/token/GoogleAuthenticatorTokenCouchDbRepository.java
It tries to create the same View twice @ lines 33 & 110 I don't know if 
that is why it fails to build that, but 
support/cas-server-support-surrogate-authentication-couchdb/src/main/java/org/apereo/cas/couchdb/surrogate/SurrogateAuthorizationCouchDbRepository.java
 
does not have any duplicates and fails to create as well.

    /** 
     * Find all by uid, otp pair. 
     * 
     * @param uid uid to search 
     * @param otp otp to search 
     * @return token for uid, otp pair 
     */ 
    @View(name = "by_uid_otp", map = "function(doc) { if(doc.token && 
doc.userId) { emit([doc.userId, doc.token], doc) } }") 
    public List<CouchDbGoogleAuthenticatorToken> findByUidForOtp(final 
String uid, final Integer otp) { 
        val view = 
createQuery("by_uid_otp").key(ComplexKey.of(uid.trim().toLowerCase(), 
otp)); 
        return db.queryView(view, CouchDbGoogleAuthenticatorToken.class); 
    } 

The attached are what I interpreted the code was actually attempting to do. 
So you should be able to load them in CouchDB manually, and try again.

CouchDbGoogleAuthenticatorToken.txt -> Default Database: gauth_multifactor
CouchDbSurrogateAuthorization -> Default Database: surrogates

Also the document format for surrogates is:

{
  "_id": "1ff83a3e2c19db3ed3c3300f0401a31e",
  "_rev": "3-93412370e24c1980eea9b82a4579b041",
  "principal": "userID",
  "surrogate": [
    "surrogateUserYouWantToBe1",
    "surrogateUserYouWantToBe2"
  ]
}


Thank you,
Matt
On Friday, October 29, 2021 at 12:25:31 PM UTC-4 Matthew Gordon wrote:

> Hello,
>
> I am also seeing this same issue on version 6.4.1 and greater. I did not 
> try anything older.
>
> I am also seeing something similar with the CouchDb Surrogate 
> Authentication module as well, so maybe there is something up with the 
> CouchDb module in general. 
>
> _design/CouchDbSurrogateAuthorization/_view/by_surrogate_principal does 
> not exist
>
> Thank you,
> Matt
>
> On Thursday, October 28, 2021 at 5:11:30 AM UTC-4 Vittore Zen wrote:
>
>> Hi,
>>
>> I'm trying to set up google 2FA using couchdb. I have added to 
>> build.graddle file:
>>    implementation 
>> "org.apereo.cas:cas-server-support-gauth:${project.'cas.version'}"
>>    implementation 
>> "org.apereo.cas:cas-server-support-couchdb-ticket-registry:${project.'cas.version'}"
>>    implementation 
>> "org.apereo.cas:cas-server-support-gauth-couchdb:${project.'cas.version'}"
>>
>> And in etc/cas/config/cas.properties file I have the following lines:
>> cas.ticket.registry.couch-db.db-name=cas
>> cas.ticket.registry.couch-db.password=my_pass
>> cas.ticket.registry.couch-db.url=http://localhost:5984
>> cas.ticket.registry.couch-db.username=admin
>> cas.authn.mfa.gauth.couch-db.db-name=cas
>> cas.authn.mfa.gauth.couch-db.password=my_pass
>> cas.authn.mfa.gauth.couch-db.url=http://localhost:5984
>> cas.authn.mfa.gauth.couch-db.username=admin
>>
>> When run "./gradlew clean copyCasConfiguration build run" in couchdb I 
>> saw correctly db cas created, with two 
>> document: CouchDbGoogleAuthenticatorAccount and TicketDocument
>>
>> But I get this error:
>> Current WebApplicationContext is not available for processing of 
>> GoogleAuthenticatorCouchDbTokenRepository: Make sure this class gets 
>> constructed in a Spring web application after the Spring 
>> WebApplicationContext has been initialized. Proceeding without injection.
>>
>> Effectively in cas db there isn't a GoogleAuthenticatorCouchDbToken 
>> document.
>>
>> Where is my mistake? What did I miss?
>>
>> Thanks in advance.
>>
>> v.
>>
>>

-- 
- Website: https://apereo.github.io/cas
- Gitter Chatroom: https://gitter.im/apereo/cas
- List Guidelines: https://goo.gl/1VRrw7
- Contributions: https://goo.gl/mh7qDG
--- 
You received this message because you are subscribed to the Google Groups "CAS 
Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/a/apereo.org/d/msgid/cas-user/d6fec844-cae9-4b2b-aa5a-c78e87c86121n%40apereo.org.
{
  "_id": "_design/CouchDbGoogleAuthenticatorToken",
  "views": {
    "all": {
      "map": "function(doc) { if(doc.token && doc.userId) { emit(doc._id, doc) 
} }"
    },
    "by_uid_otp": {
      "map": "function(doc) { if(doc.token && doc.userId) { emit([doc.userId, 
doc.token], doc) } }"
    },
    "by_issued_date_time": {
      "map": "function(doc) { if(doc.token && doc.userId) { 
emit(doc.issuedDateTime, doc) } }"
    },
    "by_userId": {
      "map": "function(doc) { if(doc.token && doc.userId) { emit(doc.userId, 
doc) } }"
    },
    "count_by_userId": {
      "map": "function(doc) { if(doc.token && doc.userId) { emit(doc.userId, 
doc) } }",
      "reduce": "_count"
    },
    "count": {
      "map": "function(doc) { if(doc.token && doc.userId) { emit(doc._id, doc) 
} }",
      "reduce": "_count"
    },
    "by_token": {
      "map": "function(doc) { if(doc.token && doc.userId) { emit(doc.token, 
doc) } }"
    }
  },
  "lists": {},
  "shows": {},
  "language": "javascript",
  "filters": {},
  "updates": {
    "delete_token": "function(doc, req){\n    if (!doc){\n        return [null, 
\"No record supplied.\"]\n    } else {\n        doc['_deleted'] = true\n        
return [doc, \"Record Deleted.\"]\n    }\n}\n"
  }
}
{
  "_id": "_design/CouchDbSurrogateAuthorization",
  "views": {
    "all": {
      "map": "function(doc) { if(doc.surrogate && doc.principal) { 
emit(doc._id, doc) } }"
    },
    "by_surrogate": {
      "map": "function(doc) { if(doc.surrogate && doc.principal) { 
emit(doc.principal, doc.surrogate) } }"
    },
    "by_surrogate_principal": {
      "map": "function(doc) { if(doc.surrogate && doc.principal) { 
emit([doc.principal, doc.surrogate], doc) } }"
    }
  },
  "lists": {},
  "shows": {},
  "language": "javascript",
  "filters": {}
}

Reply via email to