Could you use a different storage system?

I do not see the couchdb module in the current development branch. Not sure if 
it is being removed or if a different module takes on that feature.

Instead of running gradlew in vscode, you can run it from the command line. The 
'clean' part of the command will remove all .class files; no need to get rid of 
gradle directories unless you are changing gradle version (which you should 
not).
Once you build the project, remove 'clean'; only modified packages will be 
rebuilt (will be fine for logging, but not for api changes).

It is possible that method is not being called. You could put your logging 
statement in every method in that class to be sure. Also, use error level 
logging. Default logging for that class may not show at info or debug. Or add 
to log4j2.xml:

<AsyncLogger name="org.apereo.cas.couchdb.gauth.credential" level="trace">

If you want a more 'capable' development environment, here are some notes on 
intellij (I think there is a free version), 
https://apereo.github.io/cas/development/developer/Build-Process.html#intellij-idea

Ray

On Wed, 2023-08-23 at 17:43 +0200, spfma.tech via CAS Community wrote:
Notice: This message was sent from outside the University of Victoria email 
system. Please be cautious with links and sensitive information.

Hi,

I am still trying to understand what is wrong with 
"cas-server-support-gauth-couchdb" (only the first authenticator is recorded in 
the database, none is working anymore after a restart).

As I am not a Java dev (I don't have the skills and don't have the most 
convenient tools), my idea was to add some logging directives here and there to 
trace the process, using the latest branch of the application source code (not 
the overlay one).

Can someone confirm I am doing the right way :
- add "import lombok.extern.slf4j.Slf4j;" if missing on the top of the class 
file
- anotate the class definition with "@Slf4j"
- put stuff like "LOGGER.debug" or "LOGGER.info" as needed

VSCode is my tool, and it seems convenient extensions for Java/Maven/Gradle are 
not able to handle a big project like CAS (language server crashing and 
restarting all the time, Gradle extensions unable to build a tree of all 
subprojects without crashing, ...) so I don't mind using the good old manual 
way instead of wasting time.

After modifying the code here and there, I rebuild the whole app with 
"./gradlew clean build --parallel --configure-on-demand --stacktrace 
--no-daemon -x checkstyleMain" at the root of the project.

And "cas/webapp/cas-server-webapp-jetty$ ../../gradlew bootRun --parallel 
--configure-on-demand --build-cache --stacktrace --no-daemon -x checkstyleMain" 
allows me to try it (we use it with Jetty in production).

The app is running, I can reproduce the problems but I have the feeling my 
modifications don't exist  as none of my custom logging messages is displayed.

For an example, I added a simple logging flag in this file 
"support/cas-server-support-gauth-couchdb/src/main/java/org/apereo/cas/couchdb/gauth/credential/GoogleAuthenticatorAccountCouchDbRepository.java"
 this way :

@View(name= "by_username", map= "function(doc) { if(doc.secretKey) { 
emit(doc.username, doc) } }")
public List<CouchDbGoogleAuthenticatorAccount>findByUsername(finalString 
username) {
LOGGER.debug("[MY_DEBUG_STUFF] 
findByUsername@GoogleAuthenticatorAccountCouchDbRepository={}", username);
try {
return queryView("by_username",username.trim().toLowerCase());
} catch (finalDocumentNotFoundException e) {
LOGGER.trace(e.getMessage(), e);
}
return newArrayList<>(0);
}

as I think it's the one responsible for database lookup, according to the 
request I have seen coming on database side.

But nothing in the logs ... Maybe I am not tagging the right source file ?

So why not tweak a known existing log message, it is safer. In 
"support/cas-server-support-gauth-couchdb/src/main/java/org/apereo/cas/gauth/token/GoogleAuthenticatorCouchDbTokenRepository.java"
 I changed the message in "cleanInternal" method. The string "Removing tokens 
older than" is only found in this file, so I think it's spot on.

After rebuilding and restarting the application, I still get the original 
message in my logs.

DEBUG [org.apereo.cas.gauth.token.GoogleAuthenticatorCouchDbTokenRepository] - 
<Removing tokens older than [2023-08-23T17:37:11.946486]

Could someone tell me what I am missing or doing wrong ? Of course, I have 
deleted all Gradle dirs, used a find to delete all ".class" files and rebuild 
the projects several times but I am stuck.

Reagrds



________________________________
FreeMail powered by mail.fr<https://mail.fr>

-- 
- 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 cas-user+unsubscr...@apereo.org.
To view this discussion on the web visit 
https://groups.google.com/a/apereo.org/d/msgid/cas-user/1fcb4b113f2eca4c8c94cc8f70c28cbf3efcd130.camel%40uvic.ca.

Reply via email to