The registration class in the previous post isn't complete, here it is:

Registration class:
package org.custom;

// imports copied from the original code


@Configuration("customFileAuthenticationEventExecutionPlanConfiguration")
@EnableConfigurationProperties(CasConfigurationProperties.class)
public class CustomFileAuthenticationEventExecutionPlanConfiguration 
implements AuthenticationEventExecutionPlanConfigurer {
    private static final Logger LOGGER = LoggerFactory.getLogger(
CustomFileAuthenticationEventExecutionPlanConfiguration.class);

    @Autowired(required = false)
    @Qualifier("customFilePasswordPolicyConfiguration")
    private PasswordPolicyConfiguration 
customFilePasswordPolicyConfiguration;

    @Autowired
    @Qualifier("servicesManager")
    private ServicesManager servicesManager;
    
    @Autowired
    private CasConfigurationProperties casProperties;
    
    @Autowired
    @Qualifier("personDirectoryPrincipalResolver")
    private PrincipalResolver personDirectoryPrincipalResolver;


    @ConditionalOnMissingBean(name = "filePrincipalFactory")
    @Bean
    public PrincipalFactory filePrincipalFactory() {
        return new DefaultPrincipalFactory();
    }

    @RefreshScope
    @Bean
    public AuthenticationHandler customFileAuthenticationHandler() {
        final FileAuthenticationProperties fileProperties = casProperties.
getAuthn().getFile();
        final FileAuthenticationHandler h = new FileAuthenticationHandler(
fileProperties.getName(), servicesManager, filePrincipalFactory(),
                fileProperties.getFilename(), fileProperties.getSeparator
());

        h.setPasswordEncoder(Beans.newPasswordEncoder(fileProperties.
getPasswordEncoder()));
        if (customFilePasswordPolicyConfiguration != null) {
            h.setPasswordPolicyConfiguration(
customFilePasswordPolicyConfiguration);
        }
        h.setPrincipalNameTransformer(Beans.newPrincipalNameTransformer(
fileProperties.getPrincipalTransformation()));

        return h;
    }
    
    @Override
    public void configureAuthenticationExecutionPlan(final 
AuthenticationEventExecutionPlan plan) {
        if (casProperties.getAuthn().getFile().getFilename() != null) {
            LOGGER.debug("zzz Added file-based authentication handler");
            plan.registerAuthenticationHandlerWithPrincipalResolver(
customFileAuthenticationHandler(), personDirectoryPrincipalResolver);
        }
    }    
}



cas.properites file

#File Authentication
##################################################
cas.authn.file.separator=::
cas.authn.file.filename=file:///etc/cas/usersfile
cas.authn.file.name=usersfile

...

cas.authn.policy.requiredHandlerAuthenticationPolicyEnabled=true
cas.authn.policy.req.tryAll=false
cas.authn.policy.req.handlerName=CustomFileAuthenticationHandler
cas.authn.policy.req.enabled=true




On Wednesday, December 6, 2017 at 11:18:28 PM UTC+2, noumann.f wrote:
>
> Hi,
>
> I need to create a custom JDBC authentication handler, I'd done this 
> previously with version 4.x but with new version 5.1.x things have changed 
> !!
>
> I'm following the guide in here: 
> https://apereo.github.io/2017/02/02/cas51-authn-handlers
> but I need more details about registering the new handler and how to 
> create special properties for it in the cas.properties and then reach them 
> in the code!
>
> Best regards,
>

-- 
- 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/2b3377eb-0d7d-4e63-bd09-36d6432c2a2d%40apereo.org.

Reply via email to