1
1
package Net::SAML2::Role::ProtocolMessage ;
2
+
2
3
use Moose::Role;
3
- use MooseX::Types::Moose qw/ Str / ;
4
- use MooseX::Types::URI qw/ Uri / ;
5
- use DateTime::Format::XSD;
6
- use XML::Generator;
7
- use Net::SAML2::Util qw( generate_id) ;
8
4
9
- =head1 NAME
5
+ # ABSTRACT: Common behaviour for Protocol messages
10
6
11
- Net::SAML2::Role::ProtocolMessage - common behaviour for Protocol messages
7
+ use namespace::autoclean;
8
+
9
+ use DateTime;
10
+ use MooseX::Types::URI qw/ Uri / ;
11
+ use Net::SAML2::Util qw( generate_id) ;
12
12
13
13
=head1 DESCRIPTION
14
14
@@ -19,27 +19,48 @@ implementation.
19
19
20
20
=cut
21
21
22
- has ' id' => (isa => Str, is => ' ro' , required => 1);
23
- has ' issue_instant' => (isa => Str, is => ' ro' , required => 1);
24
- has ' issuer' => (isa => Uri, is => ' rw' , required => 1, coerce => 1);
25
- has ' issuer_namequalifier' => (isa => Str, is => ' rw' , required => 0);
26
- has ' issuer_format' => (isa => Str, is => ' rw' , required => 0);
27
- has ' destination' => (isa => Uri, is => ' rw' , required => 0, coerce => 1);
28
-
29
- around ' BUILDARGS' => sub {
30
- my $orig = shift ;
31
- my $class = shift ;
32
- my %args = @_ ;
33
-
34
- # random ID for this message
35
- $args {id } ||= generate_id();
36
-
37
- # IssueInstant in UTC
38
- my $dt = DateTime-> now( time_zone => ' UTC' );
39
- $args {issue_instant } ||= $dt -> strftime(' %FT%TZ' );
22
+ has id => (
23
+ isa => ' Str' ,
24
+ is => ' ro' ,
25
+ builder => " _build_id"
26
+ );
27
+
28
+ has issue_instant => (
29
+ isa => ' Str' ,
30
+ is => ' ro' ,
31
+ builder => ' _build_issue_instant' ,
32
+ );
33
+
34
+ has issuer => (
35
+ isa => Uri,
36
+ is => ' rw' ,
37
+ required => 1,
38
+ coerce => 1,
39
+ );
40
+
41
+ has issuer_namequalifier => (
42
+ isa => ' Str' ,
43
+ is => ' rw'
44
+ );
45
+
46
+ has issuer_format => (
47
+ isa => ' Str' ,
48
+ is => ' rw'
49
+ );
50
+
51
+ has destination => (
52
+ isa => Uri,
53
+ is => ' rw' ,
54
+ coerce => 1
55
+ );
56
+
57
+ sub _build_issue_instant {
58
+ return DateTime-> now(time_zone => ' UTC' )-> strftime(' %FT%TZ' );
59
+ }
40
60
41
- return \%args ;
42
- };
61
+ sub _build_id {
62
+ return generate_id();
63
+ }
43
64
44
65
=head1 CONSTRUCTOR ARGUMENTS
45
66
0 commit comments