Skip to content
Kotlin compiler plugin to hide secret data
Kotlin
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
annotation
gradle-plugin
gradle/wrapper
kotlin-plugin add sources jar Jun 2, 2019
sample
.gitignore
OTHER_WAYS.md
README.md
build.gradle.kts
gradlew
gradlew.bat
settings.gradle.kts

README.md

Sekret

Kotlin compiler plugin that hides data class properties in generated toString() method

Motivation

In 2019 Facebook and Google admitted a leaking of millions of user passwords. It doesn't mean that they save our passwords as plain text, no - the passwords were found in log files. When a user enters a password it goes through hundreds of different services and each of has its logging system. It's very easy to make a mistake and save sensitive data, especially when you have no control on autogenerated code. That's why this plugin was created to help you to exclude some properties from autogenerated toString() method. If you do not want to use a compiler plugin please have a look to other ways.

Usage

Code:

data class Credentials(
    val login: String, 
    @Secret val password: String
)

println(Credentials("User", "12345")) 

Output:

Credentials(login=User, password=■■■)

Installation

Gradle

Apply plugin:

plugins {
    id 'dev.afanasev.sekret' version '0.0.1'
}

Configure:

// Download @Secret annotation
dependencies {
    compile 'dev.afanasev:sekret-annotation:0.0.1'
}

// OR use your own
sekret {
    // true by default
    enabled = true  
    
    // "dev.afanasev.sekret.Secret" by default
    annotations = ["com.sample.YourAnnotation"] 
}

Kotlin CLI

[TBD]

Mentions

You can’t perform that action at this time.