Re: [cas-user] how do i enable jdbc feature in CAS 6.6.12?

2024-01-30 Thread Yan Zhou

HI All,

i figured out my problem!  that is interesting.

this is my customized configuration

public Collection jdbcAuthenticationHandlers() {

jdbc.getEncode().forEach(b -> handlers
.add(queryAndEncodeDatabaseAuthenticationHandler(b)));
..

this is my cas.properties:

cas.authn.jdbc.search[0]..

the code does not match properties (code expects getEncode(), but property 
only has jdbc.search)

I cannot figure this out because there was Not any error in logs. very 
interesting. Now is working as expected.

Yan


On Monday, January 29, 2024 at 1:49:01 PM UTC-5 Mohamed Amdouni wrote:

> Hello,
>
> For debugging, I just download the whole cas repository. (The 
> corresponding tag version) then I import this project to IntelliJ and 
> connect to the overlay remote jvm. 
> It doesn’t matter if the project compile or not if you would like to just 
> debug.
>
>
> Le lun. 29 janv. 2024 à 17:45, Ray Bon  a écrit :
>
>> Yan,
>>
>> I have found that intellij will report errors/missing references but code 
>> compiles just fine.
>> The build process with cas-overlay places files (compiled coded and 
>> resources) from src onto the prebuilt cas.war. 
>> I have not tried to replace jar files, so I am not sure how you would get 
>> those into the build (unless you added them manually after deployment - but 
>> that seems ineffective).
>>
>> If you are trying to debug your custom authenticator, you should not need 
>> the external jars (you could use log lines). If you are trying to fix an 
>> error in those external jars, you would have to work with the main cas 
>> project.
>>
>> You can increase spring logging to see how it treats your configuration 
>> class.
>> This logger may also help
>>
>> 
>> 
>>
>> Did you create your authenticator from scratch (as described in 
>> https://fawnoos.com/2017/02/02/cas51-authn-handlers/) 
>>  or did you copy 
>> from and existing authenticator?
>>
>> Ray
>>
>> On Mon, 2024-01-29 at 07:02 -0800, Yan Zhou wrote:
>>
>> Notice: This message was sent from outside the University of Victoria 
>> email system. Please be cautious with links and sensitive information.
>>
>> Hello,   
>>
>> thank you both! But, neither helped.  
>>
>> I have been on CAS for quite some time, making customization, but it is 
>> always Maven/Eclipse that I am working with, i wonder if that is because my 
>> lack of knowledge with Overlay's gradle build set-up.
>>
>> in my cas-overlay  build.gradle, I placed all dependencies there, CAS 
>> loads correctly, it is reading Service Registry from JSON, as I placed 
>> dependency there. it is also generating SAML-related artifacts. 
>>
>> But, when I added ...-support-jdbc... and 
>> -support-jdbc-authenitcaiton jars into intellij, so that I can debug 
>> the CAS source code (i add these as External Dependencies with Jar and 
>> Source Code),  Intellij says they are Not used.  Hmm, I wonder maybe that 
>> is the problem, even though it is listed, somehow they are not loaded.  
>> But, I am new to Gradle and to Intellij 
>>
>> Yan
>>
>> .
>>
>> dependencies {
>> /**
>> * Do NOT modify the lines below or else you will risk breaking dependency 
>> management.
>> */
>> implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${
>> project.'cas.version'}")
>> implementation platform(org.springframework.boot.gradle.plugin.
>> SpringBootPlugin.BOM_COORDINATES)
>>
>> /**
>> * Do NOT modify the lines below or else you will risk breaking the build.
>> */
>> implementation "org.apereo.cas:cas-server-core-api-configuration-model"
>> implementation "org.apereo.cas:cas-server-webapp-init"
>>
>> developmentOnly "org.springframework.boot:spring-boot-devtools:${project.
>> springBootVersion}"
>>
>> /**
>> * CAS dependencies and modules may be listed here.
>> *
>> * There is no need to specify the version number for each dependency
>> * since versions are all resolved and controlled by the dependency 
>> management
>> * plugin via the CAS bom.
>> **/
>> implementation "org.apereo.cas:cas-server-support-rest"
>> implementation "org.apereo.cas:cas-server-support-saml-idp"
>> implementation "org.apereo.cas:cas-server-support-pac4j-webflow"
>> implementation "org.apereo.cas:cas-server-support-json-service-registry"
>> implementation "org.apereo.cas:cas-server-core-webflow-api"
>> implementation "org.apereo.cas:cas-server-core-api-webflow"
>> implementation "org.apereo.cas:cas-server-core-web-api"
>> implementation "org.apereo.cas:cas-server-support-jdbc"
>> implementation "org.apereo.cas:cas-server-support-jdbc-authentication"
>> implementation "org.apereo.cas:cas-server-core-api-authentication"
>> implementation "org.apereo.cas:cas-server-core-authentication-api"
>> implementation "org.apereo.cas:cas-server-support-jpa-util"
>> implementation "org.apereo.cas:cas-server-support-oidc"
>>
>> if (project.hasProperty("casModules")) {
>> def dependencies = 

Re: [cas-user] how do i enable jdbc feature in CAS 6.6.12?

2024-01-29 Thread Mohamed Amdouni
Hello,

For debugging, I just download the whole cas repository. (The corresponding
tag version) then I import this project to IntelliJ and connect to the
overlay remote jvm.
It doesn’t matter if the project compile or not if you would like to just
debug.


Le lun. 29 janv. 2024 à 17:45, Ray Bon  a écrit :

> Yan,
>
> I have found that intellij will report errors/missing references but code
> compiles just fine.
> The build process with cas-overlay places files (compiled coded and
> resources) from src onto the prebuilt cas.war.
> I have not tried to replace jar files, so I am not sure how you would get
> those into the build (unless you added them manually after deployment - but
> that seems ineffective).
>
> If you are trying to debug your custom authenticator, you should not need
> the external jars (you could use log lines). If you are trying to fix an
> error in those external jars, you would have to work with the main cas
> project.
>
> You can increase spring logging to see how it treats your configuration
> class.
> This logger may also help
>
> 
> 
>
> Did you create your authenticator from scratch (as described in
> https://fawnoos.com/2017/02/02/cas51-authn-handlers/)
>  or did you copy
> from and existing authenticator?
>
> Ray
>
> On Mon, 2024-01-29 at 07:02 -0800, Yan Zhou wrote:
>
> Notice: This message was sent from outside the University of Victoria
> email system. Please be cautious with links and sensitive information.
>
> Hello,
>
> thank you both! But, neither helped.
>
> I have been on CAS for quite some time, making customization, but it is
> always Maven/Eclipse that I am working with, i wonder if that is because my
> lack of knowledge with Overlay's gradle build set-up.
>
> in my cas-overlay  build.gradle, I placed all dependencies there, CAS
> loads correctly, it is reading Service Registry from JSON, as I placed
> dependency there. it is also generating SAML-related artifacts.
>
> But, when I added ...-support-jdbc... and -support-jdbc-authenitcaiton
> jars into intellij, so that I can debug the CAS source code (i add these as
> External Dependencies with Jar and Source Code),  Intellij says they are
> Not used.  Hmm, I wonder maybe that is the problem, even though it is
> listed, somehow they are not loaded.  But, I am new to Gradle and to
> Intellij 
>
> Yan
>
> .
>
> dependencies {
> /**
> * Do NOT modify the lines below or else you will risk breaking dependency
> management.
> */
> implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${
> project.'cas.version'}")
> implementation platform(org.springframework.boot.gradle.plugin.
> SpringBootPlugin.BOM_COORDINATES)
>
> /**
> * Do NOT modify the lines below or else you will risk breaking the build.
> */
> implementation "org.apereo.cas:cas-server-core-api-configuration-model"
> implementation "org.apereo.cas:cas-server-webapp-init"
>
> developmentOnly "org.springframework.boot:spring-boot-devtools:${project.
> springBootVersion}"
>
> /**
> * CAS dependencies and modules may be listed here.
> *
> * There is no need to specify the version number for each dependency
> * since versions are all resolved and controlled by the dependency
> management
> * plugin via the CAS bom.
> **/
> implementation "org.apereo.cas:cas-server-support-rest"
> implementation "org.apereo.cas:cas-server-support-saml-idp"
> implementation "org.apereo.cas:cas-server-support-pac4j-webflow"
> implementation "org.apereo.cas:cas-server-support-json-service-registry"
> implementation "org.apereo.cas:cas-server-core-webflow-api"
> implementation "org.apereo.cas:cas-server-core-api-webflow"
> implementation "org.apereo.cas:cas-server-core-web-api"
> implementation "org.apereo.cas:cas-server-support-jdbc"
> implementation "org.apereo.cas:cas-server-support-jdbc-authentication"
> implementation "org.apereo.cas:cas-server-core-api-authentication"
> implementation "org.apereo.cas:cas-server-core-authentication-api"
> implementation "org.apereo.cas:cas-server-support-jpa-util"
> implementation "org.apereo.cas:cas-server-support-oidc"
>
> if (project.hasProperty("casModules")) {
> def dependencies = project.getProperty("casModules").split(",")
> dependencies.each {
> def projectsToAdd = rootProject.subprojects.findAll {project ->
> project.name == "cas-server-core-${it}" || project.name ==
> "cas-server-support-${it}"
> }
> projectsToAdd.each {implementation it}
> }
> }
>
> On Friday, January 26, 2024 at 1:44:58 PM UTC-5 Mohamed Amdouni wrote:
>
> Hi,
>
> Did you tried to add the driver dependency ?
>
> cas-server-support-jdbc-drivers
>
>
>
>
>
> Le ven. 26 janv. 2024 à 18:42, Yan Zhou  a écrit :
>
> Hi there,
>
> I maybe missing something obvious.
>
> I created my own JDBC-based authenticator,  I noticed that the JDBC
> authentication is Not registered, so login does not load jdbc-authenticator
> at all.
>
> set breakpoint in CasJdbcAuthenticationConfiguration, it is not called
> 

Re: [cas-user] how do i enable jdbc feature in CAS 6.6.12?

2024-01-29 Thread Ray Bon
Yan,

I have found that intellij will report errors/missing references but code 
compiles just fine.
The build process with cas-overlay places files (compiled coded and resources) 
from src onto the prebuilt cas.war.
I have not tried to replace jar files, so I am not sure how you would get those 
into the build (unless you added them manually after deployment - but that 
seems ineffective).

If you are trying to debug your custom authenticator, you should not need the 
external jars (you could use log lines). If you are trying to fix an error in 
those external jars, you would have to work with the main cas project.

You can increase spring logging to see how it treats your configuration class.
This logger may also help




Did you create your authenticator from scratch (as described in 
https://fawnoos.com/2017/02/02/cas51-authn-handlers/)
 or did you copy from and existing authenticator?

Ray

On Mon, 2024-01-29 at 07:02 -0800, Yan Zhou wrote:
Notice: This message was sent from outside the University of Victoria email 
system. Please be cautious with links and sensitive information.

Hello,

thank you both! But, neither helped.

I have been on CAS for quite some time, making customization, but it is always 
Maven/Eclipse that I am working with, i wonder if that is because my lack of 
knowledge with Overlay's gradle build set-up.

in my cas-overlay  build.gradle, I placed all dependencies there, CAS loads 
correctly, it is reading Service Registry from JSON, as I placed dependency 
there. it is also generating SAML-related artifacts.

But, when I added ...-support-jdbc... and -support-jdbc-authenitcaiton jars 
into intellij, so that I can debug the CAS source code (i add these as External 
Dependencies with Jar and Source Code),  Intellij says they are Not used.  Hmm, 
I wonder maybe that is the problem, even though it is listed, somehow they are 
not loaded.  But, I am new to Gradle and to Intellij 

Yan

.

dependencies {
/**
* Do NOT modify the lines below or else you will risk breaking dependency 
management.
*/
implementation 
enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")
implementation 
platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)

/**
* Do NOT modify the lines below or else you will risk breaking the build.
*/
implementation "org.apereo.cas:cas-server-core-api-configuration-model"
implementation "org.apereo.cas:cas-server-webapp-init"

developmentOnly 
"org.springframework.boot:spring-boot-devtools:${project.springBootVersion}"

/**
* CAS dependencies and modules may be listed here.
*
* There is no need to specify the version number for each dependency
* since versions are all resolved and controlled by the dependency management
* plugin via the CAS bom.
**/
implementation "org.apereo.cas:cas-server-support-rest"
implementation "org.apereo.cas:cas-server-support-saml-idp"
implementation "org.apereo.cas:cas-server-support-pac4j-webflow"
implementation "org.apereo.cas:cas-server-support-json-service-registry"
implementation "org.apereo.cas:cas-server-core-webflow-api"
implementation "org.apereo.cas:cas-server-core-api-webflow"
implementation "org.apereo.cas:cas-server-core-web-api"
implementation "org.apereo.cas:cas-server-support-jdbc"
implementation "org.apereo.cas:cas-server-support-jdbc-authentication"
implementation "org.apereo.cas:cas-server-core-api-authentication"
implementation "org.apereo.cas:cas-server-core-authentication-api"
implementation "org.apereo.cas:cas-server-support-jpa-util"
implementation "org.apereo.cas:cas-server-support-oidc"

if (project.hasProperty("casModules")) {
def dependencies = project.getProperty("casModules").split(",")
dependencies.each {
def projectsToAdd = rootProject.subprojects.findAll {project ->
project.name == "cas-server-core-${it}" || project.name == 
"cas-server-support-${it}"
}
projectsToAdd.each {implementation it}
}
}

On Friday, January 26, 2024 at 1:44:58 PM UTC-5 Mohamed Amdouni wrote:
Hi,

Did you tried to add the driver dependency ?


cas-server-support-jdbc-drivers




Le ven. 26 janv. 2024 à 18:42, Yan Zhou  a écrit :
Hi there,

I maybe missing something obvious.

I created my own JDBC-based authenticator,  I noticed that the JDBC 
authentication is Not registered, so login does not load jdbc-authenticator at 
all.

set breakpoint in CasJdbcAuthenticationConfiguration, it is not called during 
CAS start-up.

how is this configuration being loaded, see the code below?

@ConditionalOnFeatureEnabled(feature = 
CasFeatureModule.FeatureCatalog.Authentication, module ="jdbc")

is this driven by the presence of cas.auth.jdbc and jdbc jars in dependenices?

Yan

Project dependencies.

implementation"org.apereo.cas:cas-server-support-jdbc"
implementation "org.apereo.cas:cas-server-support-jdbc-authentication"


I added configuration in META-INF/spring.factories like this, i created my own 
class, so as to load my 

Re: [cas-user] how do i enable jdbc feature in CAS 6.6.12?

2024-01-29 Thread Yan Zhou
Hello,  

thank you both! But, neither helped. 

I have been on CAS for quite some time, making customization, but it is 
always Maven/Eclipse that I am working with, i wonder if that is because my 
lack of knowledge with Overlay's gradle build set-up.

in my cas-overlay  build.gradle, I placed all dependencies there, CAS loads 
correctly, it is reading Service Registry from JSON, as I placed dependency 
there. it is also generating SAML-related artifacts. 

But, when I added ...-support-jdbc... and -support-jdbc-authenitcaiton 
jars into intellij, so that I can debug the CAS source code (i add these as 
External Dependencies with Jar and Source Code),  Intellij says they are 
Not used.  Hmm, I wonder maybe that is the problem, even though it is 
listed, somehow they are not loaded.  But, I am new to Gradle and to 
Intellij 

Yan

.

dependencies {
/**
* Do NOT modify the lines below or else you will risk breaking dependency 
management.
*/
implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${
project.'cas.version'}")
implementation platform(org.springframework.boot.gradle.plugin.
SpringBootPlugin.BOM_COORDINATES)

/**
* Do NOT modify the lines below or else you will risk breaking the build.
*/
implementation "org.apereo.cas:cas-server-core-api-configuration-model"
implementation "org.apereo.cas:cas-server-webapp-init"

developmentOnly "org.springframework.boot:spring-boot-devtools:${project.
springBootVersion}"

/**
* CAS dependencies and modules may be listed here.
*
* There is no need to specify the version number for each dependency
* since versions are all resolved and controlled by the dependency 
management
* plugin via the CAS bom.
**/
implementation "org.apereo.cas:cas-server-support-rest"
implementation "org.apereo.cas:cas-server-support-saml-idp"
implementation "org.apereo.cas:cas-server-support-pac4j-webflow"
implementation "org.apereo.cas:cas-server-support-json-service-registry"
implementation "org.apereo.cas:cas-server-core-webflow-api"
implementation "org.apereo.cas:cas-server-core-api-webflow"
implementation "org.apereo.cas:cas-server-core-web-api"
implementation "org.apereo.cas:cas-server-support-jdbc"
implementation "org.apereo.cas:cas-server-support-jdbc-authentication"
implementation "org.apereo.cas:cas-server-core-api-authentication"
implementation "org.apereo.cas:cas-server-core-authentication-api"
implementation "org.apereo.cas:cas-server-support-jpa-util"
implementation "org.apereo.cas:cas-server-support-oidc"

if (project.hasProperty("casModules")) {
def dependencies = project.getProperty("casModules").split(",")
dependencies.each {
def projectsToAdd = rootProject.subprojects.findAll {project ->
project.name == "cas-server-core-${it}" || project.name == 
"cas-server-support-${it}"
}
projectsToAdd.each {implementation it}
}
}

On Friday, January 26, 2024 at 1:44:58 PM UTC-5 Mohamed Amdouni wrote:

> Hi,
>
> Did you tried to add the driver dependency ?
>
> cas-server-support-jdbc-drivers
>
>
>
>
> Le ven. 26 janv. 2024 à 18:42, Yan Zhou  a écrit :
>
>> Hi there,
>>
>> I maybe missing something obvious. 
>>
>> I created my own JDBC-based authenticator,  I noticed that the JDBC 
>> authentication is Not registered, so login does not load jdbc-authenticator 
>> at all. 
>>
>> set breakpoint in CasJdbcAuthenticationConfiguration, it is not called 
>> during CAS start-up.
>>
>> how is this configuration being loaded, see the code below?
>>
>> @ConditionalOnFeatureEnabled(feature = 
>> CasFeatureModule.FeatureCatalog.Authentication, module = "jdbc")
>>
>> is this driven by the presence of cas.auth.jdbc and jdbc jars in 
>> dependenices?
>>
>> Yan
>>
>> Project dependencies.
>>
>> implementation "org.apereo.cas:cas-server-support-jdbc"
>> implementation "org.apereo.cas:cas-server-support-jdbc-authentication"
>>
>>
>> I added configuration in META-INF/spring.factories like this, i created 
>> my own class, so as to load my custom jdbc Authenticator.
>>
>> org.apereo.cas.adaptors.jdbc.config.MyCasJdbcAuthenticationConfiguration
>>
>> then in cas.properties, i have all the properties filled. 
>>
>> cas.authn.jdbc.search[0]..
>>
>> thanks,
>>
>> -- 
>> - 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+u...@apereo.org.
>> To view this discussion on the web visit 
>> https://groups.google.com/a/apereo.org/d/msgid/cas-user/7991cac7-97e9-4487-bb6e-99e7065c0daen%40apereo.org
>>  
>> 
>> .
>>
>

-- 
- Website: https://apereo.github.io/cas
- Gitter Chatroom: https://gitter.im/apereo/cas
- List 

Re: [cas-user] how do i enable jdbc feature in CAS 6.6.12?

2024-01-26 Thread Mohamed Amdouni
Hi,

Did you tried to add the driver dependency ?

cas-server-support-jdbc-drivers




Le ven. 26 janv. 2024 à 18:42, Yan Zhou  a écrit :

> Hi there,
>
> I maybe missing something obvious.
>
> I created my own JDBC-based authenticator,  I noticed that the JDBC
> authentication is Not registered, so login does not load jdbc-authenticator
> at all.
>
> set breakpoint in CasJdbcAuthenticationConfiguration, it is not called
> during CAS start-up.
>
> how is this configuration being loaded, see the code below?
>
> @ConditionalOnFeatureEnabled(feature =
> CasFeatureModule.FeatureCatalog.Authentication, module = "jdbc")
>
> is this driven by the presence of cas.auth.jdbc and jdbc jars in
> dependenices?
>
> Yan
>
> Project dependencies.
>
> implementation "org.apereo.cas:cas-server-support-jdbc"
> implementation "org.apereo.cas:cas-server-support-jdbc-authentication"
>
>
> I added configuration in META-INF/spring.factories like this, i created my
> own class, so as to load my custom jdbc Authenticator.
>
> org.apereo.cas.adaptors.jdbc.config.MyCasJdbcAuthenticationConfiguration
>
> then in cas.properties, i have all the properties filled.
>
> cas.authn.jdbc.search[0]..
>
> thanks,
>
> --
> - 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/7991cac7-97e9-4487-bb6e-99e7065c0daen%40apereo.org
> 
> .
>

-- 
- 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/CALmwvcaT%3DnC%3D4hkJ_kxfH_e71NZh-nhc67C9Gr2EcUEU9Y%2BTsw%40mail.gmail.com.


Re: [cas-user] how do i enable jdbc feature in CAS 6.6.12?

2024-01-26 Thread Ray Bon
Yan,

Add your configuration class to

src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

See 
https://apereo.github.io/cas/7.0.x/configuration/Configuration-Management-Extensions.html#register

Ray

On Fri, 2024-01-26 at 08:54 -0800, Yan Zhou wrote:
Notice: This message was sent from outside the University of Victoria email 
system. Please be cautious with links and sensitive information.

Hi there,

I maybe missing something obvious.

I created my own JDBC-based authenticator,  I noticed that the JDBC 
authentication is Not registered, so login does not load jdbc-authenticator at 
all.

set breakpoint in CasJdbcAuthenticationConfiguration, it is not called during 
CAS start-up.

how is this configuration being loaded, see the code below?

@ConditionalOnFeatureEnabled(feature = 
CasFeatureModule.FeatureCatalog.Authentication, module ="jdbc")

is this driven by the presence of cas.auth.jdbc and jdbc jars in dependenices?

Yan

Project dependencies.

implementation "org.apereo.cas:cas-server-support-jdbc"
implementation "org.apereo.cas:cas-server-support-jdbc-authentication"


I added configuration in META-INF/spring.factories like this, i created my own 
class, so as to load my custom jdbc Authenticator.

org.apereo.cas.adaptors.jdbc.config.MyCasJdbcAuthenticationConfiguration

then in cas.properties, i have all the properties filled.

cas.authn.jdbc.search[0]..

thanks,

-- 
- 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/bdd26d43d47ccbb4d90e75a80f1b95fb913e4cb9.camel%40uvic.ca.