Found this at the end of perl5/Connector/Builtin/Memory.pm:

=item primary_attribute

If your data consists of hashes as leaf nodes, set this to the name of
the node that is considered the primary attribute, e.g. the name of a
person. If you now access the key on the penultimate level using I<get>
you will receive the value of this attribute back.

    user1234:
        name: John Doe
        email: john....@acme.com

When you call I<get(user1234)> on this structure, the connector will
usually die with a "not a scalar" error. With I<primary_attribute = name>
you will get back I<John Doe>.

=back


This seems relevant to the issue I'm seeing. Is this something I can
change, or is this an issue with how the server is calling this function?

On Fri, Dec 22, 2023 at 9:22 AM Maximillian Busiek <
busiek.maximill...@gmail.com> wrote:

> After a quick test modifying the smtp.yaml file slightly, and sending a
> test email, I get the same error as before:
>
> root@openxpki:~/openxpki# docker exec -it openxpki-openxpki-server-1
> openxpkicli send_notification --arg message=testmail --param notify_to=
> busiek.maximill...@gmail.com
> Error: Error while executing API command
>     requested value is not a scalar at
> /usr/share/perl5/Connector/Builtin/Memory.pm line 74, <DATA> line 1.
>
> logs:
>
> 2023/12/22 14:05:33 ERROR Error while executing API command; __caller__ =>
> /usr/share/perl5/OpenXPKI/Service/Default.pm:644, __command__ =>
> send_notification, __error__ => requested value is not a scalar at
> /usr/share/perl5/Connector/Builtin/Memory.pm line 74, <DATA> line 1.
>  [pid=17|user=Anonymous|role=System|sid=QmyG|pki_realm=the-sprawl]
>
> and the relevant part of smtp.yaml:
>
> # Sample config for good old email notifications
> backend:
>     class: OpenXPKI::Server::Notification::SMTP
>     host: smtp.gmail.com
>     # FQDN for helo - defaults to system fqdn
>     helo: certs.internal.the-sprawl.org
>     port: 587
>     starttls: 1
>     username: busiek.maximill...@gmail.com
>     password: <REDACTED>
>     debug: 0
>     # You need to install MIME::Tools for html support
>     use_html: 0
>
> #smime:
> #   certificate_key_file: /etc/openxpki/local/smime.key
> #   certificate_file: /etc/openxpki/local/smime.crt
> #   certificate_key_password: test
>
> # alternative to key/certificate, requires Crypt::SMIME 0.17 or newer!
> #    certificate_p12_file: /etc/openxpki/local/smime.p12
>
> default:
>     to: "[% data.notify_to %]"
>     from: busiek.maximill...@gmail.com
>     reply: busiek.maximill...@gmail.com
>     cc: schmitt.maximill...@gmail.com
>     prefix: PKI [% meta_wf_id %]
>     images:
>         banner: head.png
>
> # template settings
> template:
>     dir:   /etc/openxpki/template/email/
>
> message:
>     testmail:
>         default:   # The internal handle for this thread
>             template: testmail
>             subject: SMTP Notification Test
>             from: busiek.maximill...@gmail.com
>             reply: ''
>             cc: ''
>             prefix: ''
>
>     csr_created:   # The message Id as referenced in the activity
>         default:   # The internal handle for this thread
>             template: csr_created_user
>             subject: CSR for [% cert_subject %]
>
>         raop:      # Another internal handle for a second thread
>             template: csr_created_raop  # Suffix .txt is always added!
>             to: busiek.maximill...@gmail.com
>             cc: ''
>             reply: "[% IF data; IF data.notify_cc; data.notify_cc; ELSE;
> data.notify_to; END; END; %]"
>             subject: CSR for [% cert_subject %]
>
>
>
>
>
> Is there something I'm missing? In reading the docs, it seems like you can
> just (at least for testing) use the templates directory as I am doing, so I
> don't think it's having an issue reading the files. I've tried looking at
> the perl code at Connector/Builtin/Memory.pm but I couldn't really make
> heads or tails of what it would be expecting and what is 'not a scalar' in
> that call:
>
> sub get {
>
>     my $self = shift;
>     my $value = $self->_get_node( shift );
>
>     return $self->_node_not_exists() unless (defined $value);
>
>     if (ref $value ne '') {
>         die "requested value is not a scalar"
>             unless ($self->has_primary_attribute() && ref $value eq
> 'HASH');
>
>         return $self->_node_not_exists()
>             unless (defined $value->{$self->primary_attribute});
>
>         die "primary_attribute is not a scalar"
>             unless (ref $value->{$self->primary_attribute} eq '');
>
>         return $value->{$self->primary_attribute};
>     }
>
>     return $value;
>
> }
>
> On Fri, Dec 22, 2023 at 8:55 AM Maximillian Busiek <
> busiek.maximill...@gmail.com> wrote:
>
>> Hi Martin,
>>
>> I had left the notification and metadata handling at default - hadn't
>> touched them since initial setup, and was getting this error. I then tried
>> setting up the smtp backend, but I may not have done it correctly. I'll
>> start digging into the notification handling, as that does seem to be where
>> it's getting tripped up.
>>
>> Here is the technical log from the GUI (the dns lookup failing is
>> expected, this was just a test cert):
>>
>> 2023-12-21 21:18:39 UTC INFO Trigger notification message csr_created
>> ([undef])
>> 2023-12-21 21:18:39 UTC INFO Set datapool entry: key = RE:DA:CT:ED,
>> namespace = certificate.privatekey ([undef])
>> 2023-12-21 21:18:33 UTC INFO Policy DNS check failed on 1 items ([undef])
>> 2023-12-21 21:18:33 UTC INFO Check DNS policy on these items: test
>> ([undef])
>> 2023-12-21 21:18:33 UTC INFO Rendering subject:
>> CN=test,DC=internal,DC=the-sprawl,DC=org ([undef])
>>
>> and here is the snippet of openxpki.log from inside the docker container
>> when I hit 'resume' on the workflow:
>>
>> 2023/12/22 13:42:01 ERROR Workflow
>> 4863/certificate_signing_request_v2/NOTIFY_CSR_PENDING uncaught exception
>> [pid=29|role=RA
>> Operator|sid=6RUz|rid=564c63cfcd38|wftype=certificate_signing_request_v2|wfid=4863]
>> 2023/12/22 13:42:01 ERROR I18N_OPENXPKI_SERVER_WORKFLOW_ERROR_ON_EXECUTE;
>> __ACTION__ => csr_notify_pending, __ERROR__ => requested value is not a
>> scalar at /usr/share/perl5/Connector/Builtin/Memory.pm line 74, <DATA> line
>> 1.
>>  at /usr/share/perl5/OpenXPKI/Server/API2/Plugin/Workflow/Util.pm line
>> 318.
>> , __EXCEPTION__ =>  [pid=29|role=RA
>> Operator|sid=6RUz|rid=564c63cfcd38|wftype=certificate_signing_request_v2|wfid=4863]
>> 2023/12/22 13:42:01 ERROR I18N_OPENXPKI_SERVER_WORKFLOW_ERROR_ON_EXECUTE;
>> __ACTION__ => csr_notify_pending, __ERROR__ => requested value is not a
>> scalar at /usr/share/perl5/Connector/Builtin/Memory.pm line 74, <DATA> line
>> 1.
>>  at /usr/share/perl5/OpenXPKI/Server/API2/Plugin/Workflow/Util.pm line
>> 318.
>> , __EXCEPTION__ =>  [pid=29|role=RA
>> Operator|sid=6RUz|rid=564c63cfcd38|wftype=certificate_signing_request_v2|wfid=4863]
>>
>> and here is a snippet of my notification/smtp.yaml:
>>
>> backend:
>>     class: OpenXPKI::Server::Notification::SMTP
>>     host: smtp.gmail.com
>>     # FQDN for helo - defaults to system fqdn
>>     #helo: my.own.fqdn
>>     port: 587
>>     starttls: 1
>>     username: busiek.maximill...@gmail.com
>>     password: <REDACTED>
>>     debug: 0
>>     # You need to install MIME::Tools for html support
>>     use_html: 0
>>
>> everything else in smtp.yaml was copied from
>> democa/notification/smtp.yaml.sample
>>
>> Let me know if there's anything else I can provide that would be of help
>> troubleshooting this issue. Appreciate your assistance!
>>
>> Thanks,
>> Max
>>
>> On Fri, Dec 22, 2023 at 2:51 AM Martin Bartosch via OpenXPKI-users <
>> openxpki-users@lists.sourceforge.net> wrote:
>>
>>> Hi Maximillian,
>>>
>>> > Having some trouble with a new openxpki install using the docker
>>> image. I've gotten most everything configured, but when I try to generate a
>>> CSR via the webui, I get the following error:
>>> >
>>> > Unexpected error
>>> > This workflow was interrupted by an unexpected event, it will not
>>> continue without a manual interaction. Please contact the support team!
>>> > Last Update
>>> > 2023-12-21 21:18:39 UTC
>>> > Failed Action
>>> > csr_notify_pending
>>> > Exception Message
>>> > requested value is not a scalar at
>>> /usr/share/perl5/Connector/Builtin/Memory.pm line 74. at
>>> /usr/share/perl5/OpenXPKI/Server/API2/Plugin/Workflow/Util.pm line 318.
>>> >
>>> > I've tried swapping out the profile I'm using with the tls_server.yaml
>>> profile in the democa and that has the same issue. I've also swapped out
>>> the default.yaml with the one from the democa and still, same issue. Not
>>> sure what else I can set to default configs to get this working, but any
>>> help would be appreciated.
>>>
>>> From the GUI error message you posted something is not correctly
>>> configured with regard to notification.
>>>
>>> Reading between the lines of your post I assume you did a certain amount
>>> of customization, possibly involving notification or metadata handling.
>>> However, without additional information such as technical log, log file
>>> contents and relevant configuration snippets it is unfortunately not
>>> possible to provide any assistance.
>>>
>>> Cheers
>>>
>>> Martin
>>>
>>>
>>>
>>> _______________________________________________
>>> OpenXPKI-users mailing list
>>> OpenXPKI-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/openxpki-users
>>>
>>
_______________________________________________
OpenXPKI-users mailing list
OpenXPKI-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openxpki-users

Reply via email to