Changeset 483
- Timestamp:
- 04/02/06 07:34:03
- Files:
-
- trunk/plagger/lib/Plagger/Plugin.pm (modified) (1 diff)
- trunk/plagger/lib/Plagger/Plugin/Subscription/Bloglines.pm (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/plagger/lib/Plagger/Plugin.pm
r482 r483 36 36 } 37 37 38 if (my $params = $self->encrypt_config) {39 $params = [ $params ] unless ref $params; 38 $self->walk_config_encryption(); 39 } 40 40 41 for my $key (@$params) { 42 my $config = $self->conf; 43 # support foo/bar/baz 44 while ($key =~ s!^(\w+)/!!) { 45 $config = $config->{$1}; 41 sub walk_config_encryption { 42 my $self = shift; 43 my $conf = $self->conf; 44 45 $self->do_walk($conf); 46 } 47 48 sub do_walk { 49 my($self, $data) = @_; 50 return unless defined($data) && ref $data; 51 52 if (ref($data) eq 'HASH') { 53 for my $key (keys %$data) { 54 if ($key =~ /password/) { 55 $self->decrypt_config($data, $key); 46 56 } 47 my $decrypted = Plagger::Crypt->decrypt($config->{$key}); 48 if ($decrypted eq $config->{$key}) { 49 Plagger->context->add_rewrite_task($key, $decrypted, Plagger::Crypt->encrypt($decrypted, 'base64')); 50 } else { 51 $config->{$key} = $decrypted; 52 } 57 $self->do_walk($data->{$key}); 58 } 59 } elsif (ref($data) eq 'ARRAY') { 60 for my $value (@$data) { 61 $self->do_walk($value); 53 62 } 54 63 } 55 64 } 56 65 57 sub encrypt_config { } 66 sub decrypt_config { 67 my($self, $data, $key) = @_; 68 69 my $decrypted = Plagger::Crypt->decrypt($data->{$key}); 70 if ($decrypted eq $data->{$key}) { 71 Plagger->context->add_rewrite_task($key, $decrypted, Plagger::Crypt->encrypt($decrypted, 'base64')); 72 } else { 73 $data->{$key} = $decrypted; 74 } 75 } 58 76 59 77 sub conf { $_[0]->{conf} } trunk/plagger/lib/Plagger/Plugin/Subscription/Bloglines.pm
r482 r483 10 10 $self->class_id . '-' . $self->conf->{username}; 11 11 } 12 13 sub encrypt_config { 'password' }14 12 15 13 sub register {
