Sekret compiler

Kotlin compiler for Sekret library

License

License

Categories

Categories

Net
GroupId

GroupId

net.afanasev
ArtifactId

ArtifactId

sekret-compiler
Last Version

Last Version

0.1.0
Release Date

Release Date

Type

Type

jar
Description

Description

Sekret compiler
Kotlin compiler for Sekret library
Project URL

Project URL

https://github.com/aafanasev/sekret
Source Code Management

Source Code Management

https://github.com/aafanasev/sekret

Download sekret-compiler

How to add to project

<!-- https://jarcasting.com/artifacts/net.afanasev/sekret-compiler/ -->
<dependency>
    <groupId>net.afanasev</groupId>
    <artifactId>sekret-compiler</artifactId>
    <version>0.1.0</version>
</dependency>
// https://jarcasting.com/artifacts/net.afanasev/sekret-compiler/
implementation 'net.afanasev:sekret-compiler:0.1.0'
// https://jarcasting.com/artifacts/net.afanasev/sekret-compiler/
implementation ("net.afanasev:sekret-compiler:0.1.0")
'net.afanasev:sekret-compiler:jar:0.1.0'
<dependency org="net.afanasev" name="sekret-compiler" rev="0.1.0">
  <artifact name="sekret-compiler" type="jar" />
</dependency>
@Grapes(
@Grab(group='net.afanasev', module='sekret-compiler', version='0.1.0')
)
libraryDependencies += "net.afanasev" % "sekret-compiler" % "0.1.0"
[net.afanasev/sekret-compiler "0.1.0"]

Dependencies

runtime (2)

Group / Artifact Type Version
org.jetbrains.kotlin : kotlin-stdlib-jdk8 jar 1.4.31
org.jetbrains.kotlin : kotlin-compiler-embeddable jar 1.4.31

Project Modules

There are no modules declared in this project.

Sekret

maven

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 'net.afanasev.sekret' version '0.1.0'
}

Configure:

// Download @Secret annotation
dependencies {
    compile 'net.afanasev:sekret-annotation:0.1.0'
}

// OR use your own
sekret {
    // "■■■" by default
    mask = "***"    
    
    // true by default
    enabled = true  
    
    // true by default
    maskNulls = false  
    
    // "net.afanasev.sekret.Secret" by default
    annotations = ["com.sample.YourAnnotation"] 
}

Kotlin CLI

kotlinc \
    -Xplugin=kotlin-plugin.jar \
    -P plugin:sekret:annotations=com.sample.YourAnnotation \
    ...

Mentions

Versions

Version
0.1.0