Mastering Aspnet Core Security Vladimir Pecanac Marinko Spasojevic

caverrykengb 5 views 51 slides May 20, 2025
Slide 1
Slide 1 of 51
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51

About This Presentation

Mastering Aspnet Core Security Vladimir Pecanac Marinko Spasojevic
Mastering Aspnet Core Security Vladimir Pecanac Marinko Spasojevic
Mastering Aspnet Core Security Vladimir Pecanac Marinko Spasojevic


Slide Content

Mastering Aspnet Core Security Vladimir Pecanac
Marinko Spasojevic download
https://ebookbell.com/product/mastering-aspnet-core-security-
vladimir-pecanac-marinko-spasojevic-54547112
Explore and download more ebooks at ebookbell.com

Here are some recommended products that we believe you will be
interested in. You can click the link to download.
Mastering Aspnet Web Api Build Powerful Http Services And Make The
Most Of The Aspnet Core Web Api Platform Mithun Pattankar
https://ebookbell.com/product/mastering-aspnet-web-api-build-powerful-
http-services-and-make-the-most-of-the-aspnet-core-web-api-platform-
mithun-pattankar-6856658
Mastering Minimal Apis In Aspnet Core Build Test And Prototype Web
Apis Quickly Using Net And C 1st Edition Andrea Tosato
https://ebookbell.com/product/mastering-minimal-apis-in-aspnet-core-
build-test-and-prototype-web-apis-quickly-using-net-and-c-1st-edition-
andrea-tosato-46799324
Mastering Aspnet With C A Russell Jones
https://ebookbell.com/product/mastering-aspnet-with-c-a-russell-
jones-4104276
Mastering Aspnet With Vbnet 1st Edition A Russell Jones
https://ebookbell.com/product/mastering-aspnet-with-vbnet-1st-edition-
a-russell-jones-42957112

Mastering Aspnet Web Api Mithun Pattankar Malendra Hurbuns
https://ebookbell.com/product/mastering-aspnet-web-api-mithun-
pattankar-malendra-hurbuns-6856656
Mastering Collaboration In A Product Team 70 Techniques To Help Teams
Build Better Products 1st Edition Natasha Hampshire Glaudia Califano
David Spinks
https://ebookbell.com/product/mastering-collaboration-in-a-product-
team-70-techniques-to-help-teams-build-better-products-1st-edition-
natasha-hampshire-glaudia-califano-david-spinks-44875474
Mastering Collaboration In A Product Team 70 Techniques To Help Teams
Build Better Products 1st Edition Natasha Hampshire
https://ebookbell.com/product/mastering-collaboration-in-a-product-
team-70-techniques-to-help-teams-build-better-products-1st-edition-
natasha-hampshire-44915468
Mastering Gnome A Beginners Guide 1st Edition Sufyan Bin Uzayr
https://ebookbell.com/product/mastering-gnome-a-beginners-guide-1st-
edition-sufyan-bin-uzayr-46082774
Mastering Flutter A Beginners Guide 1st Edition Sufyan Bin Uzayr
https://ebookbell.com/product/mastering-flutter-a-beginners-guide-1st-
edition-sufyan-bin-uzayr-46082778

1 INTRODUCTION .......................................................................... 1
2 ABOUT TOKENS, OAUTH 2, AND OPENID CONNECT ..................... 3
2.1 Understanding OAuth2 and OpenID Connect ................................................ 4
2.2 How OpenID Connect Generates Id Token ................................................... 4
2.3 Types of Clients ............................................................................................ 5
2.4 OAuth2 and OpenID Connect Endpoints and Flows ...................................... 6
3 SETTING UP IDENTITYSERVER4 AND UI ..................................... 8
3.1 Installing UI for the IDP Application .......................................................... 15
4 CREATING A CLIENT APPLICATION ........................................... 19
4.1 Regarding the API ...................................................................................... 22
4.2 Testing the Client Application..................................................................... 23
5 SECURING THE WEB APPLICATION ........................................... 25
5.1 Configuring the IdentityServer to Use the Authorization Code Flow .......... 27
5.2 Securing the Client Application with the Authorization Cod e Flow ............. 28
5.3 Testing the Functionality ............................................................................ 30
5.4 Inspecting Claims....................................................................................... 33
5.5 Using PKCE (Proof Key for Code Exchange) ................................................ 34
5.6 Login, Logout, and Additional User Info ..................................................... 37
5.7 Additional Claims ....................................................................................... 40

6 WORKING WITH CLAIMS AND AUTHORIZATION ....................... 42
6.1 Modifying Claims ........................................................................................ 42
6.2 Adding Additional Claims ........................................................................... 44
6.3 Manually Calling the UserInfo Endpoint ..................................................... 47
6.4 Implementing Role -Based Authorization .................................................... 49
6.5 Protecting Endpoints with Roles ................................................................. 53
7 SECURING THE WEB API ........................................................... 57
7.1 Implementing Web API Security ................................................................ 57
7.2 Providing an Access Token When Calling an API ........................................ 61
7.3 Redirecting the Client to the Unauthorized Page ........................................ 63
7.4 Using Policies to Secure The Application .................................................... 64
8 HANDLING TOKEN EXPIRATION ................................................ 69
8.1 Working with Token Lifetime and Expiration .............................................. 69
8.2 Refreshing the Token ................................................................................. 70
9 MIGRATING IDENTITYSERVER4 CONFIGURATION TO THE
DATABASE WITH ENTITY FRAMEWORK CORE ................................. 76
9.1 Preparing Migrations for the IS4 Configuration .......................................... 77
9.2 Creating Migrations .................................................................................... 78
10 ASP.NET CORE IDENTITY INTEGRATION WITH EXISTING
IDENTITYSERVER4 PROJECT .......................................................... 82

10.1 Integrating the ASP.NET Core Identity ....................................................... 83
10.2 Initial Migrations ........................................................................................ 85
10.3 Seeding the Users ...................................................................................... 87
10.4 Modifying Login and Logout Logic .............................................................. 90
11 USER REGISTRATION WITH ASP.NET CORE IDENTITY .............. 93
11.1 Actions, View and ViewModel ..................................................................... 93
11.2 Implementing Registration Action ............................................................. 96
11.3 Testing User Registration ........................................................................... 99
11.4 Working with Identity Options ................................................................... 99
12 RESET PASSWORD WITH ASP.NET CORE IDENTITY ................. 101
12.1 Using Email Service in the IdentityServer4 Project .................................. 101
12.2 Implementing Forgot Password Functionality .......................................... 103
12.3 Implementing Reset Password Functionality ........................................... 107
12.4 Testing the Solution ................................................................................. 110
13 EMAIL CONFIRMATION ........................................................... 113
13.1 Preparing Email Confirmation Implementation ........................................ 113
13.2 Implementing Email Confirmation ............................................................ 115
13.3 Testing Email Confirmation ...................................................................... 117
13.4 Modifying Lifespan of the Email Token ..................................................... 119
14 USER LOCKOUT ....................................................................... 121

14.1 Configuration ........................................................................................... 121
14.2 Lockout Implementation .......................................................................... 121
14.3 Testing Lockout ........................................................................................ 123
15 TWO-STEP VERIFICATION ...................................................... 126
15.1 Enabling Verification Process ................................................................... 126
15.2 Two-Step Implementation ....................................................................... 128
15.3 Testing Two-Step Verification .................................................................. 130
16 EXTERNAL PROVIDER WITH IDENTITYSERVER4 AND ASP.NET
CORE IDENTITY ............................................................................ 132
16.1 Getting ClientId and ClientSecret ............................................................. 132
16.2 Configuring External Identity Provider ..................................................... 135
16.3 External Provider Implementation ........................................................... 136
16.4 Testing ..................................................................................................... 139

1


Modern web applications have changed their landscape a lot during the
recent period. We build more applications where the API part and the client
part aren’t on the same domain. Moreover, we have applications where, for
example, one API communicates with a different API, or the client
application communicates with more than one API. Also, we have a great
variety of client applications built with Angular or React or even MVC web
app that communicate with some API, etc.
When we face a landscape such as the one previously described, it is not
enough to have security implemented inside our main application or our API.
As we can see, there can be multiple clients, and having the security
functionality in our API can’t satisfy the security requirements for all the
different client applications.
Additionally, we need to keep in mind that using forms on client applications
that accept a username and a password and send them with the HTTP
request to the server is pretty insecure. That’s something we should never
do if we have a public API that requires clients to be authenticated to access
its resources. If an attacker steals the password, there’s more than just the
API access at stake because – let’s be honest – users tend to reuse their
passwords on different systems/applications.
Of course, if we have a private API (API that provides resources to a single
trusted client) then using this approach with the username and password is
still acceptable.
Now, we may wonder what the security solution for this landscape is – when
we have a public API and multiple third-party clients? This leads us to token-
based security. A token is related to consent – the user grants consent to a

2

client application to access the API on behalf of that user. Then, the token is
sent with the HTTP requests and not the username and password.
So, we want to prevent two things here.
The first one is to no longer use client credentials at the application level
because this should be handled on a centralized server. The second thing is
to ensure that tokens are safe enough for the authentication and
authorization actions for different types of applications.
That said, all of these questions lead us to the centralized Identity Provider
that should be responsible for the token handling and proving the user’s
identity.
Using a centralized provider helps us centralize authentication and
authorization operations, provide tokens, refresh tokens, etc. Additionally,
the actions related to user management should be centralized as well
because we want to use them for multiple clients and if something changes
in the implementation, we have to make changes only in one centralized
place.
We should point out that using Identity Server4, OAuth2 and OIDC will help
us with the authentication and authorization actions, but for the user
management actions, we have to integrate ASP.NET Core Identity at the
centralized level as well.
So, a lot of ground is ahead of us, but if you follow along with this book and
its examples, we are sure you will master security actions in ASP.NET Core
applications.
We’ll help you do that by using both IdentityServer4 and Duende. Since
the implementation is almost the same for both, we will point out the main
differences that you need to pay attention to.

3


Before we start learning about OAuth and OpenID Connect, we have to
understand what a token is. If we want to access a protected resource, the
first thing we have to do is to retrieve a token. When we talk about token-
based security, most of the time we refer to the JSON web token (JWT).
We’ve learned about JWT in our Ultimate ASP.NET Core Web API book, but
let’s just recall a couple of things.
For secure data transmission, we use JSON objects. A JWT consist of three
basic parts: the header, the payload, and the signature. The header contains
information like the type of token and the name of the algorithm. The payload
contains some attributes about the logged-in user. For example, it can
contain the user id, subject and information whether a user is an
administrator. Finally, we have the signature part. Usually, the server uses
this signature part to verify whether the token contains valid information –
the information that the server is issuing.
Now, let’s see how we exchange our credentials for a token:
• The user provides credentials to the authorization server and the
server responds with a token.
• After that, the user can use that token to talk to the API and retrieve
the required data. Of course, behind the scenes, the API will validate
that token and decide whether the user has access to the requested
endpoint.
• Finally, the user can use that token with a third-party application that
communicates with the API and retrieves data from it. Of course, the
third-party application has to provide the token to the API via headers.

4

After the token validation, the API provides data to the client
application and that client application returns data to the user.
As we can see, we are not using our credentials with the third-party
application. Instead, we use a token, which is certainly a more secure way.

OAuth2 and OpenID Connect are protocols that allow us to build more
secure applications. OAuth stands for Open standard for Authorization. It is
the industry-standard protocol for authorization. It delegates user
authentication to the service that hosts the user’s account and authorizes
third-party applications to access that account. It provides different flows for
our applications, whether they are web, desktop, or mobile applications.
Additionally, it defines how a client application can securely get a token from
the token provider and use it for authorization actions.
With authorization, we prove that we have access to a certain endpoint. But,
if we want to add authentication in the process, we have to refer to OpenID
Connect. So, OpenID Connect complements OAuth2 with the authentication
part. It is a simple identity layer on top of the OAuth2 protocol that allows
clients to verify their identity after they perform authentication on the
authorization server. With this protocol, a client can request an identity
token, next to the access token and use that id token to sign in to the
application while the application uses the access token to access the API.
Additionally, we can extract more information about the end-user by using
OpenID Connect.

Generating an id token is a process that involves the client application and
the Identity Provider (IDP). This process contains the following actions:

5

• The client application creates a request which redirects the user to the
IDP, where the user proves their identity by providing their username
and password. As we can see here, the user’s credentials are not sent
via request, but rather the user provides the username and password
at the IDP level.
• After the verification process, IDP creates the id token, signs it, and
sends it back to the client. This token contains user verification data.
• Finally, the client application gets the id token and validates it.
Now, we have to say that this is a simplified explanation of how OpenID
Connect works because there is a lot that’s happening behind the scenes.
We will come to that but, for now, it is enough to understand the basics.
There is one more thing to mention here. The client application uses the
id token to create claims identity and store these claims in a cookie.

As we can see, the user can authenticate using the user credentials. But, the
client can do the same with the client credentials (client_id and
client_secret). If a client is capable of maintaining the confidentiality of its
credentials and can safely authenticate – that client is considered a
confidential client. It is a confidential client because it stores its credentials
on the server inaccessible to the user. For example, an ASP.NET Core MVC
application is a confidential client.
If a client can’t maintain the confidentiality of its credentials, it is called the
public client. These client applications are being executed in the browser and
can’t safely authenticate. JavaScript applications and mobile applications are
considered public clients.

6


It is quite important to keep in mind that there is great documentation
regarding OAuth 2.0 – RFC 6749 that makes it a lot easier to understand
OAuth-related topics. One of those topics is related to OAuth endpoints. So,
let’s inspect these endpoints:
• /authorize – a client uses this endpoint (Authorization endpoint) to
obtain authorization from the resource owner. We can use different
flows to obtain authorization and gain access to the API.
• /token – a client uses this endpoint to exchange an authorization
grant for an access token. This endpoint is used for the token refresh
actions as well.
• /revocation – this endpoint enables the token revocation action.
OpenID Connect also allows us to perform some additional actions with
different endpoints, such as:
• /userinfo – retrieves profile information about the end-user
• /checksession – checks the session of the current user
• /endsession – ends the session for the current user
There are different flows we can use to complete authorization actions:
• Implicit Flow
• Authorization Code
• Resource Owner Password Credentials
• Client Credentials
• Hybrid (mix of Authorization Code and Implicit Flow)
The flow determines how the token is returned to the client and each flow
has its specifics.
You can read more about these flows in the documentation mentioned above.

7

In this book, you will learn how to use the Authorization Code Flow with
Proof Key for Code Exchange (PKCE, pronounced pixie) to provide a high
level of security for our web application and our API. It is also a
recommended flow for web applications.

8


Before we start, we have to install the IdentityServer4 templates that help
us speed up the creation process. We are going to use only the basic
templates for the empty IDP application and basic UI files, nothing more
than that because we want to explain every single step of the security
implementation. After you learn all the steps in detail, you can use other
templates to create projects with additional features out of the box.
So, let’s start with the template installation:
dotnet new -i identityserver4.templates
This is the result:

For Duende the command is slightly different:
dotnet new -i Duende.IdentityServer.Templates
The result:

9

We can see multiple templates installed with the Short Name values that we
can use to create our projects.
Now, let’s create an empty IDP project:
dotnet new is4empty -n CompanyEmployees.IDP
Of course, it is a bit different command for Duende
dotnet new isempty -n CompanyEmployees.IDP
After creation completes, let’s open the project and modify the
launchsettings.json file:
{
"profiles": {
"SelfHost": {
"commandName" : "Project",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT" : "Development"
},
"applicationUrl": "https://localhost:5005"
}
}
}
Since the created project from a template targets .NET Core 3.1, we are
going to update that and the preinstalled libraries.
That said, let’s modify the .csproj file:
<Project Sdk="Microsoft.NET.Sdk.Web">

<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="IdentityServer4" Version="4.1.2" />

<PackageReference Include="Serilog.AspNetCore" Version="4.1.1-dev-00229" />
</ItemGroup>
</Project>

Random documents with unrelated
content Scribd suggests to you:

— Nyt minä lähden — yks, kaks, kolme! Tulkaa perässä!
Tietysti hän oli ensimmäisenä siellä ylhäällä. Ensio soi mielellänsä
hänelle voiton, ja Helvi taas ei notkeudessa ja sukkeluudessa
mihinkään riittänyt Irjan rinnalla. Vihdoin he kaikki kolme
hengästyneinä ja läähättäen seisoivat tornissa kaidepuun luona.
— Ja nyt juoksemme taas alas, että mäki tärisee, ja menemme
suin päin järveen, — jatkoi Irja huimaavia ehdotuksiansa.
— Kiitos vaan kunniasta, — nauroi Ensio. — Vaatteinemme
päivinemme, vai kuinka? Älähän nyt, sisko, kyllä me sentään
istumme täällä, kun kerran tulimme.
Helvi ei enää kuunnellut heidän puheitansa. Hän nojausi
kaiteeseen, katse kiinnitettynä lumoavaan maisemaan, jonka hän
vasta pari kertaa oli ehtinyt nähdä. Niin synkkää kahdella taholla —
vuoria vaan ja koskemattomia korpia. Lännessä näkyi lyhyen matkan
päässä iso kylä laivalaitureinensa, ja siitä eteenpäin peltoja ja niittyjä
pitkässä, laajenevassa jonossa, kunnes metsä ne katkaisi jälleen.
Mutta edessä Haapalehto hymyili ja Saimaa kimalteli siniaaltoinensa.
Niemi kurkottihe toista syleilemään, kukkavihkona saari kohosi
saaren vieressä, salmet välkkyivät ja lahdet värehtivät. Vaan uloinna
aukeni avara selkä, jonka äärtä silmä turhaan tapaili. Siellä valkoiset
purjeet hohtivat ja höyrylaivojen sauhu erottui vaalakkaa taivasta
vasten. Siitä kulki yhdystie salon ja suuren maailman välillä.
Mitä mietti Helvi? Tiesikö hän sitä itsekään? Maailma oli niin suuri
ja kirkas ja ihana, kun sitä katsoi Honkaharjulta — Laakson lapsen se
hurmasi vastustamattomalla voimalla.
Ensio kuului ehdottelevan, että he laulaisivat jotakin.

— Niin, lauletaan, lauletaan! — Helvi käännähti säteilevin silmin
tovereittensa puoleen. Se vastasi niin hyvin hänen mielentilaansa.
— Mitä laulamme?
— "Mä oksalla ylimmällä" — eikö se sovi hyvin?
He valitsivat sen. Irjan ja Ension ääni kaikui sointuvammin, Helvin
heikommin, mutta kaikki he lauloivat sydämensä pohjasta.
— — "Oi taivahan pyhä Herra, sä Isämme armias, ah
kuinka on maasi kaunis, kuink' ihana taivahas! Suo järveimme
säihkyellä ain' lempemme tulta vaan! Oi Herra, intoa anna
kotimaatamme rakastamaan!"
Monikertaisena kuului kaiku ympäröivistä vaaroista ja vuorista. Ja
vielä laulun vaiettua kaikuivat sanat ja sävelet nuorissa sydämissä.
— Minä en ymmärrä, kuinka ihmiset voivat luopua Suomesta ja
mennä muille maille, — virkkoi Irja. — Me kolme, me ainakin
rakastamme synnyinmaatamme emmekä sitä koskaan jätä.
Tehdäänpä luja liitto nyt tässä! Luvataan antaa koko elämämme
Suomelle yksin!
Ension täytyi hiukan hymyillä Irjan juhlalliselle innolle, mutta hän
oli kuitenkin heti valmis "liittoon".
— No, Helvi, sinun kätesi myöskin!
Mutta Helvi oli yhtäkkiä tullut totiseksi. Hän vetäytyi pois, hän ei
voinut ojentaa kättänsä.
— Helvi — — — mitä?

Irjan katse oli kuvastanut suurinta hämmästystä, mutta nyt hän
näytti melkein säikähtyneeltä.
— Sitäkö sinä ajattelet? Ei, Helvi, — — — ethän sinä voinut mitään
tarkoittaa sillä talvellisella aineellasi — —, sehän olisi aivan hirveätä!
Etkä sinä koskaan petä Suomea sillä lailla!
Helvin huulet värisivät ja kyyneleet kohosivat silmiin. Hän ei ollut
pitkään aikaan muistanut koko lähetysasiaa. Mistä se nyt tuli kuin
salamana?
Irja oli huudahtanut: "koko elämämme Suomelle yksin!" Mutta
hetkenä, jota Helvi ei voinut unohtaa, oli toinen lausunut juhlallisella,
vakavalla äänellä: "ota, Herra, hänen elämänsä — ota hänet
kokonaan!" Lähetysjohtaja oli hänet Herralle jättänyt — ja äiti, oma
rakas äitikin niin monta kertaa…
Ja äitiä muistaessaan Helvi rupesi itkemään. Jospa hän olisi ollut
täällä pulmia selvittämässä! Helvi ei uskaltanut luvata, ettei hän
koskaan kotimaata jättäisi, mutta samalla, jo eron mahdollisuutta
ajatellessa, oli kuin sydän olisi puristunut kokoon pelosta ja tuskasta.
Miksi talvella oli tuntunut ihan toiselta?
Eikö voinut yhtaikaa palvella Jumalaa ja omaa isänmaata?
Irja oli kietonut kätensä Helvin ympärille ja oli itsekin vähällä
saada kyyneleet silmiinsä. — Helvi rakas, Helvi kulta, — lohdutteli
hän. — En minä tahtonut pahoittaa sinua. Minähän en ymmärtänyt…
enkä minä koskaan sinua oikein ymmärrä… voi, älä nyt itke!
Nyyhkytysten seasta Helvi koetti vakuuttaa, ettei hän ollut Irjaan
pahastunut. Mutta kyyneleet pulpahtivat uudelleen esiin, ja äskeinen

ilo ja sopusointu oli mennyttä.
Silloin Ensio istuutui hänen viereensä ja sanoi ystävällisellä
äänellä:
— Emmehän me kukaan tiedä, mihin joudumme. Et sinä petä
Suomea, vaikka sinun joskus täytyisi mennä vieraaseenkin maahan.
Voimmehan synnyinmaata rakastaa missä tahansa, ja kyllä sinäkin
rakastaisit. Ja ehket sinä koskaan lähdekään täältä pois.
Nyyhkytykset alkoivat tauota, kyyneleet kuivaa. Helvi loi silmänsä
ylös Ensioon, ja niissä näkyi ilon välähdys, kuin kirkas kaari
sadepisaroissa.
— Tehdään vähän toisenlainen liitto, — jatkoi hän. — Tyydytään
siihen, että vaan lupaamme rakastaa syntymämaata ja koettaa
rakkauttamme työssä osottaa niin paljon kuin voimme. Sen me
kaikki uskallamme vakuuttaa. Mutta oletko sinä, Irja, niin vähään
tyytyväinen?
Olihan hän, vaikka tuntuikin melkein, kuin olisi kylmällä vedellä
sammutettu hänen tulinen innostuksensa.
— Sitte meidän ainakin heti pitää ruveta sitä osottamaan, niinkuin
sinä sanoit, ryhtyä johonkin semmoiseen työhön, — tuumi hän.
— Kyllä se on parasta, — myönsi Ensio nauraen, mutta lisäsi kohta
totisena: — Me olemmekin ihan liiaksi ajatelleet itseämme. Tuolla
kylässä on paljo köyhiä, tietämättömiä lapsia. Olen jo ennenkin usein
miettinyt, että meidän pitäisi tehdä jotakin heidän hyväksensä. Nyt
kun meitä on kolme, saisimme helposti toimeen pienen iltakoulun
taikka jotakin sellaista. Emmekö koettaisi?

— Koetamme tietysti, — huudahti Irja uudelleen innostuneena. —
Siitäpä vasta tulee hauskaa! Miten ei kukaan meistä ole sitä ennen
keksinyt? Voi, juostaan pian alas, mennään kertomaan isälle ja
äidille!
Hän unohti koko juhlallisen "liiton", eivätkä Ensio ja Helvi
välittäneet muistuttaa. Mutta sydämet olivat kuitenkin tehneet liiton,
yhtyneet hyviin aikomuksiin ja vakaaseen päätökseen vähäisilläkin
voimilla työskennellä Suomen hyväksi. Helvin suru oli jo haihtunut. Ei
hän ollut selvästi tietänyt, miksi hän itki, eikä hänelle myöskään nyt
ollut selvää, mikä oli tuottanut lohdutusta. Ajatukset ja tunteet olivat
yhtä epämääräiset kuin ennenkin. Mutta hänestä tuntui kuin Ensio
olisi ymmärtänyt häntä niin hyvin, paremmin kuin hän itse — ja hän
rauhoittui. Kuinkapa varjot olisivatkaan kauvan viihtyneet täällä
päivänpaisteessa?
Iloisina he riensivät rinnettä alas. Vastaan jo törähti
metsästystorven ääni; se oli merkki, jolla tohtorin oli tapana kutsua
nuorta väkeänsä aterioille.

XI
Ne olivat herttaisia päiviä. Ilmat pysyivät tasaisen kauniina, ja kaikki
kesän suomat nautinnot olivat tarjona: souturetket somille saarille,
kävelyt metsissä, kiipeilyt harjuilla, joilta aukeni näköaloja toisiaan
viehättävämpiä, krokettipeli tasaisella nurmella ja lukuhetket puiden
siimeksessä — niin, kenpä ne ilot luettelisikaan? Eikä tuntunut
kuitenkaan siltä, kuin aika olisi mennyt hukkaan pelkän
huvittelemisen tähden; olihan heidän päivillänsä muutakin sisällystä.
Milloin tohtori lähti kalaan ja tarvitsi jonkun soutamaan, milloin he
auttoivat tohtorinnaa puutarhassa, taikkapa muutenkin
työskentelivät, tytöt kasveineen tai käsitöineen, Ensio kirjoineen.
Heidän lempiharrastuksensa oli kuitenkin opetus iltakoulussa, jonka
he Ension ehdotuksen mukaan olivat panneet toimeen kylän lapsille.
Joka toisena arki-iltana kokoontui Haapalehdon suurimpaan
verandaan kymmenkunta pienokaista, joille Helvi opetti sisälukua,
Irja kaunokirjoitusta ja Ensio laskentoa. Eihän se koulu suinkaan
mallikelpoinen ollut, sillä opettajat olivat aivan tottumattomia eikä
opetusvälineitä aluksi ollut juuri minkäänmoisia. Tohtori kyllä kirjoitti
lähimpään kaupunkiin ja tilasi kirjoja, vihkoja, tauluja ja muita
tarpeita; mutta niitä odotellessa laskettiin napeilla, kirjoitettiin
viivatuille paperiarkeille kahtia taitetuilla lyijykynillä ja tavattiin äitien
ja mummojen virsikirjoista. Vaan intoa ei puuttunut opettajilta eikä

oppilailta. Syrjäisen saloseudun lapset olivat ihan liikuttavan kilttejä,
ja heidän ja heidän vanhempainsa kiitollisuus oli nuorille opettajille
kehoittavana palkintona.
Varsinkin Irjalle tällainen ajanvietto oli jotakin ihan uutta. Hän ei
ollut ennen paljon ajatellut muita, sillä hän oli itse tottunut kodissa
olemaan se keskipiste, jonka ympäri kaikki liikkui. — Mikä tuottaisi
Irjalle iloa? — siinä isän, äidin ja veljen ainainen ajatus. Nyt hän sai
kokea tyydytystä, minkä toimiminen muiden hyväksi tuottaa. Helvi ja
Ensio olivat kyllä enemmän oppineet uhrautumaan. Toista olivat
ahtaat olot ja kasvatus siihen johtaneet, toista oma luonne ja se
tunne, että hän, vaikka häntä pidettiinkin kuin omaa poikaa,
kuitenkin oikeastaan söi armoleipää, josta oli lakkaamattomassa
kiitollisuuden velassa. Mutta hyvää teki heillekin tämä kesäinen
koulunpito. Rakkaudessa ei voi koskaan kylliksi harjoittautua.
Näin he toteuttivat kaunista ohjelmaansa: työmme voimamme
mukaan isänmaalle, jota rakastamme!
Helvi oli niin onnellinen, että hänestä monasti tuntui kuin hän
näkisi suloista unta ja kentiesi kohta heräisi jälleen Kristianinkadun
varrella kivijalan huoneessa. Ei hän enää ollut äitiäkään ikävöinnyt,
ja häntä oli ilahuttanut ja rauhoittanut se tieto, että äiti kuitenkin oli
toistaiseksi päättänyt jäädä maalle oikein virkistyäksensä. Tietysti oli
hauska syksyllä tavata hänet jälleen. Mutta nyt, nyt ei Helvi halunnut
muuta kuin päivä päivältä jatkaa tätä huoletonta, ihanaa elämää…
Syvin siemauksin hän imi auringonpaistetta, kuten varjossa kasvanut
kukka, jonka lehtiä ensi kerran huikaiseva valo hivelee.
Ei hän kuitenkaan täälläkään saanut taisteluitta olla. Häntä
ympäröi komeus ja kauneus, mutta sitä suurempana vastakohtana
hän etenkin ensi päivinä muisti oman kotinsa köyhyyttä. Joka päivä

riisuutuessa ja pukeutuessa hän näki Irjan hienot, pitsitetyt ja
kauniisti merkityt liinavaatteet, ja silloin usein tuntui pieni pistos
sydämessä ja huokaus kohosi rinnasta. Ennen hän aina oli ollut
omiinsa tyytyväinen eikä edes ajatellut, että ne voisivat olla
toisenlaisia. Mitä muusta, kunhan vaan olivat eheät ja puhtaat; eihän
niitä kukaan nähnytkään. Nyt hän sitävastoin häpesi niiden
huonoutta. Pukujen suhteen täällä sentään oli paljon parempi kuin
kaupungissa. Lindiläisetkin kuluttivat maalla vanhimpia vaatteitansa,
ja metsäseudun yksinäisyydessä Helvin vaatimaton puku oli aivan
omiaan. Kuta useampi päivä kului, sitä enemmän hän unohtikin
ajatella sitä. Olihan niin paljon muuta parempaa ja hauskempaa,
joka tunkihe täyttämään hänen mielensä.
Mutta oli eräs toinen taistelu, josta Helvi ei yhtä helpolla
vapautunut. Hän oli äidillensä luvannut joka päivä rukoilla ja lukea
raamattua, ja hänelle itselleenkin se oli tullut luonnolliseksi tavaksi ja
sisälliseksi tarpeeksi. Ensi iltana vetäydyttyään Irjan kanssa heidän
yhteiseen makuuhuoneeseensa hän sentähden heti otti laukustansa
raamatun esille. Irjalle sellainen oli outoa; hän loi kummastelevan
katseen toveriinsa ja hänen kirjaansa, mutta vastoin tapaansa ei
virkkanut mitään. Arkatunteinen Helvi käsitti tuokiossa, että Irjan ei
ollut tapana lukea iltasin, ja tuo äänetön katse vaivasi ja painosti
häntä niin, että hän muutamia värsyjä luettuansa laski raamatun
pois.
Silloin Irja taas alkoi puhua laverrella kaikenlaisia asioita, mutta
äskeistä tapausta ei kumpikaan sanallakaan koskettanut.
He puhelivat vielä sängyssäkin, kunnes Irja vihdoin kääntyi toiselle
kyljellensä ja sanoi, että hän nyt aikoi nukkua. Helvin mielestä olisi jo
kauvan sitte ollut aika rukoilla iltarukous, mutta hän oli arvellut: teen

sen, kunhan Irja vaikenee ja itsekin tahtoo rukoilla. Eikö hän siis
rukoillutkaan ollenkaan, vaan nukkui ilman? Se oli jo liikaa Helville.
Hän makasi silmät avoinna ja odotti, mutta pian Irjan syvä hengitys
todisti, että hän todellakin oli vaipunut uneen. Silloin Helvi hiljaa,
hiljaa nousi vuoteeltansa ja polvistui sen viereen.
Toisena aamuna he olivat heränneet melkein yhtaikaa, ja kohta
Irja taas oli alkanut livertää kuin pikku peipponen. Nyt Helvi oli vielä
pahemmassa pulassa kuin edellisenä iltana. He olivat ja valmiiksi
pukeutuneet, eikä hän ollut vielä saanut tilaisuutta hiljaisen hetken
viettämiseen.
— No, tule nyt puutarhaan! — sanoi Irja, tarttuen hänen käteensä.
Silloin Helvin täytyi voittaa se kiusallinen, ahdistava,
häpeänsekainen tunne, joka oli hänen huulensa sulkenut.
— En minä voi tulla vielä juuri —
— Mikset? Mikä sinulta vielä puuttuu?
Helvi lensi tulipunaiseksi, katsoi lattiaan ja viivytti vastaustaan.
Mutta sitte hän loi silmänsä ylös ja kysyi totisesti, ponnistaen kaiken
rohkeutensa:
— Irja, etkö sinä koskaan rukoile illoin ja aamuin?
— Johan minä luin aamurukouksen aikaa sitte, heti kuin heräsin.
— Mutta minähän heräsin ensin enkä nähnyt sinun rukoilevan, —
vastasi
Helvi ihmetellen.

— Nähnyt? Kuinka sinä sen olisit nähnyt? Eihän siinä tarvitse
huuliansa liikuttaa.
— Äiti ja minä laskeudumme aina polvillemme, — sanoi Helvi
hiljaa.
Nyt oli Irjan vuoro katsoa Helviä hämmästyksissään.
— En minä ole koskaan kuullut, että muut kuin
pelastusarmeijalaiset tekevät sillä lailla! — virkkoi hän viattomasti,
silmät suurina. — Mitä se hyödyttää? Eihän kirkossakaan kukaan
lankea polvilleen.
Kirkossa — niin, se oli totta — sitä ei Helvi ollut ennen
ajatellutkaan. Ylimalkaan hän ei ollut mitään ajatellut eri asennoista
rukoillessa. Hän oli aina nukkunut äitinsä kanssa samassa
huoneessa, aina laskeutunut polvilleen ja pitänyt sen ihan
luonnollisena asiana. Miksi hän niin teki, sitä hän todellakaan ei
tietänyt eikä voinut selittää.
— Mitä se hyödyttää? — toisti Irja. — Luuletko sinä, että Jumala
paremmin kuulee meitä sillä lailla?
Ei, eihän Helvi sitä luullut, mutta ei hän osannut muutakaan syytä
sanoa. Sen hän vaan tunsi, ettei häntä tyydyttänyt sellainen
puoliunessa ja pelkissä ajatuksissa lausuttu rukous kuin Irjan.
— Jää nyt sitte tekemään mitä tahdot, minä odotan sinua
puutarhassa, — sanoi Irja hetken kuluttua ja lähti huoneesta.
Ja Helvi laskeutui polvilleen; mutta kun viereisestä huoneesta
kuului liikettä, hypähti hän kohta jälleen ylös säpsähtäen kuin
pahantekijä. Rukouksen rauhaa hän ei löytänyt, eikä

raamatunluvusta tullut tällä kertaa enempää kuin edellisenäkään
iltana. Muutaman minuutin perästä hän oli puutarhassa Irjan luona.
Sitte oli taistelua jatkunut monena päivänä. Aina Helvi kumminkin
uskollisesti otti raamattunsa esille, mutta ei hän kertaakaan jäänyt
pitemmäksi ajaksi luettua miettimään, kuten kotona. Vaan eräänä
iltana tapahtui jotakin odottamatonta: Irja kysyi, eikö Helvi tahtoisi
lukea ääneen, että hänkin kuulisi. Silloin Helvin silmät loistivat ilosta,
ja siitä asti tuli heille tavaksi lukea yhdessä joka aamu ja ilta.
Mutta polvillensa ei Helvi enää koskaan laskeutunut. Eiköhän Irja
ollutkin oikeassa, kun hän sanoi, että Jumalalle oli yhdentekevää,
kuinka kukin rukoili? Ainakin täällä polvistuminen tuntui niin oudolta
ja vaikealta… Helvi päätti kuiskata rukouksensa vuoteella
maatessaan, yhtä huomaamattomasti kuin Irjakin — mutta hyvin
hartaasti…
Siitä lähtien hän kuitenkin kaipasi jotakin, eikä rukous tuntunut
samalta kuin ennen. Usein kävi niinkin, että Irja rupesi juttelemaan,
eikä Helvi voinut olla vastaamatta, ja puhe Jumalan kanssa
keskeytyi. Tapahtuipa joskus, että hän nukkuikin rukoukseensa.
Välistä hänen oli paha olla tästä kaikesta, mutta ei hän antanut
itsellensä aikaa pitempiin mietteisiin ja selvityksiin. Päivä riensi
päivän perästä, aina yhtä rikkaana ja vaihtelevana; ajatukset ja
kysymykset hukkuivat sen pyörteeseen. Kerran hän aikoi kirjeessä
puhua huolensa äidille, mutta sitte hän ei sitä tehnytkään. Tiesihän
hän ennakolta, mitä äiti vastaisi… Mutta se tuli siitä, ettei hän
tuntenut näitä oloja; ihan varmaan hän ymmärtäisi tyttöään, jos olisi
täällä…
Eikä Helvi enää taistellut eikä tuuminut. Hän tahtoi nauttia ja olla
onnellinen, hänen täytyi saada olla. Kesä oli niin lyhyt! Mitä tämä

miettimisestä paranikaan. Voihan hän nyt menetellä, niinkuin täällä
tuntui sopivimmalta, ja kotona sitte taas seurata entisiä tapojaan.

XII
Oli satanut pari päivää peräkkäin, mutta juhannusaatto koitti
kirkkaana ja kauniina. Se oli erityinen juhla Haapalehdossa, sillä
silloin tohtori Lind vietti syntymäpäiväänsä.
Huolimatta sateesta oli eräs palkattu kyläläinen tuonut metsästä
kokonaiset kantamukset katajaa, puolanvarpuja ja katinliekoja, ja
iltayöstä Ensio ja molemmat tytöt olivat leivintuvassa niistä
seppeleitä sidelleet. Aamulla huvila koreili juhlapukuisena. Nuoret
olivat ensimmäisinä ylhäällä, sillä heillä oli toinenkin hauska yllätys
tohtorille: he tahtoivat näet herättää hänet laululla. Irja ja Ensio
eivät ennen olleet sitä yrittäneet, kun heitä oli vaan kaksi. Kolmen
laulu kuului jo toisenmoiselta, vaikkei Helvin ääni vahva ollutkaan, ja
sitäpaitsi oli harjoitteleminenkin hauskempaa, kun oli oikea pieni
"kuoro".
Ja tohtori oli ihastunut heidän keksintöihinsä. Hän levitti
käsivartensa niin leveälle, että saattoi sulkea niihin heidät kaikki
kolme, ja kiitti heitä sydämellisesti, kehui laulua kauniiksi ja ylisti
seppelekoristeita kerrassaan mainioiksi. Sitte tuli tohtorinna
noutamaan koko joukkoa järvenpuoliselle parvekkeelle kahvia
juomaan. Kaste vielä välkkyi kukkasissa, Saimaa nukkui peilityynenä

ja ilmassa tuntui varhaisen aamun miellyttävä raikkaus. Tiesivätkö
lintusetkin, että nyt oli juhannus? Kilvan ne ainakin lauloivat suven
suloutta, juhlan riemua julistivat.
Ainoastaan aamu oli tänään perheen keskinäiselle seurustelulle
omistettu. Sitte oli tohtorinnalla senkin seitsemät toimet ja touhut,
sillä päivälliseksi piti vanhan tavan mukaan saapua vieraita sekä
lähikaupungista että ympäristöltä, ehkäpä kauvempaakin. Kuka
tuttava vaan tuli, hän oli kutsuttakin tervetullut. Eikä koskaan
hennottu samana iltana eritä; ellei huvilassa riittänyt yösijoja, saatiin
kyllä kylästä lisää. Hyvinpä niitä useimmiten tarvittiinkin, sillä
juhannusaatot Haapalehdossa olivat Lindin perheen sikäläiselle
seurapiirille kesähuvien tähtinä, joita jokainen tavoitti. Ihmekö että
haluttiin sinne, missä ihana luonto, runsaat varat ja ennen kaikkea
herttaiset ihmiset panivat parastansa vieraiden viihtymiseksi?
Nyt olivat nuoret sen lisäksi saaneet luvan aikaisemmin
aamupäivällä pitää kahvikemut pienille oppilaillensa. Pitihän
heidänkin iloita isän juhlana, arveli Irja. Toimessaan hän hyöri Helvin
kanssa kattaen kahvipöytää lehtimajaan, sillä hän oli päättänyt, ettei
tämä tuuma saisi tuottaa äidille yhtään lisävaivoja. Äidin tähdenhän
Ensio sitä oli epäillyt, vaikka hänenkin kyllä muuten teki mieli nähdä
kylän lapsia runsaan syntymäpäiväpöydän ääressä.
Tuolla ne jo tulivatkin, kaikki yhdessä joukossa. Eihän näin
merkkipäivänä kehdannut yksinään mennä, kuten tavalliselle
koulutunnille! Äidit olivat siistineet heitä parhaansa mukaan.
Pellavatukat oli kastettu ja kammattu jakaukselle, kasvot ja kädet
pesty, ja pyhävaatteet pantu niiden ylle, joilla oli sellaiset. Mutta
mäkituvan keveäjalkainen pikku Liisu kopsutteli ison siskon
ruojukengissä, suutarin Mikko oli jostakin saanut lainaksi miehen

takin, ja Aakulan Aino kompastui vähän väliä äitinsä pitkän hameen
helmoihin, jotka liehuivat hänen kantapäillänsä. Hämillään ja
epävarmoina oudoissa tamineissaan he pysähtyivät ison käytävän
eteen, uskaltamatta astua kauvemmaksi.
Mutta siinä he joutuivat kahden tulen väliin, sillä lehtimajasta
riensivät "opettajat" heitä vastaan, ja ujoimmat, jotka olivat
vetäytyneet toisten taakse, huomasivat yhtäkkiä itse tohtorin ja
tohtorinnan tulevan rakennuksen puolelta suoraan heitä kohti. Ei nyt
auttanut muuta kuin niiata ja kumartaa sormet suussa ja pää
vinossa ja sitte käydä isäntäväen saattamina höyryävien kuppien
ääreen, jotka lehtimajassa odottivat. Siellä pian arkuus suli
tyytyväisyyden ja ilon loisteeksi. Liisu piteli kaksin käsin teevatiansa,
puhalsi ja hörppäsi ja vuoroon hengähti syvään, suu hymyssä.
Muona-Juhon pienet tytöt, jotka olivat kutsutut vanhemman veljen
mukana, istuivat turvallisina Helvin ja Irjan sylissä ja purivat
vehnäkakkujansa, jotta posket olivat pullollaan. Mikko suuressa
takissaan oli niin miehevä, että uskalsi jo katsoa tohtoriakin silmiin,
ja Aino vastasi arvokkaasti kuin pikkuinen emäntä tohtorinnan
kysymyksiin. Vasta leikkimään ruvetessa hän muisti hameensa
hankaluuden, ja Liisu tirkisteli ymmällään kenkiänsä. Mutta helpolla
siitäkin pulasta suoriuduttiin. Jalkineet vaan muitta mutkitta heitettiin
mäkeen, ja parilla hakaneulalla Irja sai hameen kylliksi koholleen.
Sitte juostiin ja leikittiin — ujostelematta, täysin riemuin, kaiken
muun unohtuessa. Mitä siitä, kuka oli opettaja tai oppilas, kuka
tohtorin, kuka mökkiläisen lapsi!
"— — Kentillä leikkitarhain yhdessä juostihin; ken
pallonlyöjä parhain, se meistä etevin — —"

Yhtä syvään he ainakin huokasivat, Irja ja moni pienistä vieraista,
kun tohtorinna tuli huomauttamaan, että sen huvin jo täytyi loppua
ja tyttöjen rientää pukeutumaan, jotta sitte ehtisivät laivalaiturille
varsinaisia vieraita vastaan.
* * * * *
Heitä oli tullut tavallista enemmän, etenkin nuoria. Päivällinen oli
syöty yleisen ilon vallitessa, ja heti iltapäiväksi oli määrätty veneretki
kauniille Sotkasaarelle, joka oli tiheimmän saariston syrjässä ison
Saimaan rajalla.
Huvilan ja vierasten veneet muodostivat kokonaisen ketjun.
Etummaisessa, köynnöksillä koristetussa veneessä piti perää tohtori,
päivän sankari, ja siinä istui Ensio soutamassa.
Hänen katseensa kulkivat seuraavaan veneeseen, joka oli täynnä
pelkkiä nuoria. Irja istui parven keskellä valkopukuisena, kuten
tavallisesti juhlatiloissa, pitkät siniset nauhat vyöllä ja liehuvin
kiharoin. Nimismies Brofeltin pojat, joista vanhempi keväällä oli
saanut lyyryn lakkiinsa, näkyivät innokkaasti väittelevän hänen
kanssansa jostakin, ja ympärillä istuva iloinen joukko helähti tuon
tuostakin raikkaaseen nauruun, kun Irja varmaankin sukkelasti
vastasi.
Ensio tuli yhä totisemman ja hajamielisemmän näköiseksi. Ei
sentähden, että hän siihen veneeseen olisi halunnut, sillä tässä
vanhempien joukossa kyllä oli parempi. Hekin puhuivat vilkkaasti —
niin vilkkaasti, ettei ollut epäkohteliasta, vaikka soutaja kokassa
istuikin ääneti. Ja vaiti, omissa ajatuksissaan hän halusi olla. Tuoko
oli hänen pikku siskonsa, hänen Irjansa? Niin, olihan hän sama, yhtä
häikäisevän kaunis ja iloinen kuin aina — ja kuitenkin hän yhtäkkiä

tuntui paenneen Ensiosta kauvas pois, ikäänkuin kasvaneen ja
muuttuneen vieraaksi — Kuinka herttainen hän oli ollut aamupäivällä
kaataessaan kahvia kylän lapsille ja juostessaan kyyhkysenä
haukkaansa pakoon! Sellaisena hän oli Ension mieleen. Miksi hänelle
nyt olikin pantu tuommoinen helsinkiläinen tanssiaispuku, jonka
kautta hän erottautui kaikista muista? Ja miksi nuo pojat viitsivätkin
lapsen kanssa veikistellä — ja miksi hänkin, Irjakin, viitsi…
Ja Ensio käänsi silmänsä pois tuosta nauravasta ja melskaavasta
joukosta. Ne sattuivat kolmannen veneen keulassa istuvaan tyttöön,
jolla oli yllänsä yksinkertainen punaruutuinen pumpulipuku ja tukka
tavallisella palmikolla. Hän istui erillään ja ääneti kuten Ensiokin,
loiskutteli haavanoksalla vettä ja katseli kuplia, jotka siten syntyivät
tyyneen pintaan. Mutta hänen kasvoissaan ei kuvautunut alakuloista
vakavuutta, kuten Ension, vaan rauhaisa onni niistä säteili.
— Mitähän se Helvi tuossa tuuminee? — ajatteli Ensio.
Samassa hän loi silmänsä ylös, kohtasi Ension katseen ja hymyili;
ja Ension täytyi hymyillä vastaan. Helvi oli niin onnellinen. Mitä
noista vieraista ihmisistä? He eivät hänen iloonsa kuuluneet. Mutta
täytyihän hänen sydämensä riemuita, kun kaikki oli niin ihanaa ja
valoisaa, kun oli juhannus…
— Ensio hoi, otappa vastaan! — kajahti silloin Irjan ääni.
Veneessä oli alotettu leikki "laivani on lastattu". Ennenkuin Ensio
ehti edes pitää varansa, oli Irja näppärästi heittänyt nenäliinan
kaikkien arvoisien herrojen ja rouvien päiden yli suoraan hänen
eteensä.

— No, no, — varoitti tohtori, mutta nauroi kumminkin vallattomalle
tytöllensä.
Ensio hiukan pysäytti airojansa, lausui vaaditun sanan ja heitti
taitavasti nenäliinan takaisin. Mutta pilvi oli väistynyt hänen
kasvoiltaan. Olihan Irja sittekin hänen herttainen pikku siskonsa!
* * * * *
Aurinko läheni jo laskuaan. Virvokkeita oli nautittu tuuheiden
puiden alla, seutua oli ihailtu, ja nuoret olivat sydämensä pohjasta
leikkineet hauskalla tasaisella kentällä. Silloin odottamatta alkoi
kuulua viulun säveliä.
— Mitä, mitä? — kysyttiin kuorossa.
Se oli tohtorinnan salaisuus. Hän hymyili veitikkamaisesti ja kysyi,
eikö ollut parempi, että Polkka-Aapo tuli myöhään kuin ei
milloinkaan. Ukko oli rientänyt tänne suoraan häistä naapuripitäjästä,
ja nyt piti nuorten osottaa, ettei hänen vaivansa ollut turha.
Ja Aapo istahti kivelle ja veteli polkkaa, että pää tutisi. Tauno
Brofelt riensi kumartamaan Irjalle, ja tuota pikaa kenttä oli täynnä
iloisesti pyöriviä pareja.
Soitettiin purpurin merkki. Franseesi ei kuulunut Aapon taiteeseen.
Helvi seisoi vähän syrjässä rantakalliolla ja katseli kauvas pitkin
punertavan veden pintaa. Hänkin oli tanssinut, mutta nyt hän
mieluummin oli hetken yksinään. Tässä hän tahtoi olla, katsella ja
nauttia. Kaikesta hän nautti: luonnosta ja ihmisistäkin, kun he olivat
vähän etäämmällä, ja siitä, että oli saanut leikkiä ja tanssia…

Käki kukkui lahden toisella rannalla. Vesi värehti ja kimalteli, ja
taivaanranta loisti täynnänsä purppuraruusuja. Tuossa leijaili kaunis
pilvi, kuten tulinen laiva. Mitä jos se kantaisi mukanaan pois yli tuon
suuren ulapan ja vielä kauvemmas — äidin luo —
Hänet valtasi yhtäkkiä kaipauksensekainen tunne. Hän oli
kuitenkin niin yksin keskellä tätä iloa ja ihanuutta…
Silloin oksa rasahti, Helvi kääntyi ja näki Ension lähenevän.
— Tuletko tanssimaan purpuria kanssani? — kysyi hän.
— Enhän minä osaa, — virkkoi Helvi melkein hätkähtäen ja
hätäisesti; mutta sydän alkoi kovasti sykkiä, kuten odottamattomasta
ilosta.
— Se on niin helppoa, ettei sitä ennakolta tarvitse osata; kyllä
minä vien.
— Mutta eikö sinun pitäisi tanssia muiden kanssa — Irjan tai
vierasten?
— Irjalla on niin monta ympärillänsä, ettei minulle jää tilaa, —
lausui Ensio naurahtaen, vaikka äänessä oli jotakin katkeraa. — Eikä
se taitaisi olla sopivaakaan, että veli riistäisi hänen seuransa muilta.
Täti muistutti minua olemaan kohtelias vieraille, ja kyllä minä olen
koettanut katsoa, että tanssinhaluisilta ei puutu paria. Etkö tule,
Helvi? Meidän pitäisi rientää.
Helvi katsoi häntä kummastuneena; hänestä Ensiossa oli jotakin
outoa. Mutta ei hän ehtinyt sitä enempää ajatella. Viulu jo kutsui,
hän antoi kätensä Ensiolle, ja he kiirehtivät paikallensa muiden
joukkoon.

He eivät kumpikaan puhuneet monta sanaa; ei tullut toinen eikä
toinen ajatelleeksi, että "kohteliaisuus" muka vaati keskustelun
ylläpitämistä tanssiessa. Ensio vaan neuvoi Helville miten hänen tuli
menetellä, ja Helvi iloitsi jokaisesta onnistuneesta yrityksestä, kuten
jänönpoikanen, joka huomaa hyppyjensä luonnistavan. Hänen
poskensa hehkuivat innosta, ja hänen ainoa toivonsa oli, että tätä
kestäisi kauvan, kauvan…
Mutta ilta hämärtyi, aurinko katosi taivaanrannan taakse, ja vähän
jälkeen purpurin loppumisen täytyi ruveta lähtöä ajattelemaan. Ensio
oli jo edellä soutanut pois parin palvelijan kanssa. Tohtorinna
lohdutti nuoria sillä, että Haapalehdossa voitaisiin panna vielä
kappale yötä huvin jatkoksi. Aapo pisti viulun kainaloonsa, kapineet
kannettiin veneisiin, ja huvimatkailijatkin asettuivat kukin
mieleiseensä seuraan. Soutajat vetelivät voimiensa takaa, jotta pian
jouduttaisiin perille. Kuka nyt olisi ehtinyt ja muistanut luontoa
ihailla…
Käännyttiin niemen takaa Haapalehdon lahdelle. Silloin kuului
ihastuksen humina kautta veneseurueen. Kaikkea ne Lindiläiset
keksivätkin!
Huvila hohti satumaisena kirjavien paperilyhtyjen valossa, ja
samassa leimahti korkea kokko vaaran laella palamaan. Väki oli
menetellyt tarkkaan tohtorinnan määräysten mukaan ja Ensio
kaikella kunnialla toimittanut loppusuorituksen.
Veneistä hypätessä Irja hiukan ehti puristaa käsivarresta Helviä,
jonka kanssa hän vieraiden tulon jälkeen tuskin oli päässyt
sanaakaan vaihtamaan. — Eikö ole äärettömän kaunista, eikö ole
hauskaa? — kuiskasi hän. Ja täydestä sydämestään Helvi vastasi: —
On — ei minulla vielä koskaan ole ollut tämmöistä iltaa!

Honkaharjulta kaikki näytti vieläkin kauniimmalta; sinne nuoret
kiipesivät metsän hämäriä polkuja pitkin. Mutta sitte tuli aika
kokoontua illallista syömään ruokasaliin ja parvekkeille, ja syötyä
Aapo viritti viulunsa ja tanssi alkoi jälleen. Aurinko jo kohosi idän
rannalta, kun vihdoin lähdettiin levolle.
Helville ja Irjalle oli täksi yöksi tehty vuode pienen tornikamarin
lattialle. Vasta sinne tultuansa he huomasivat olevansa hyvin
väsyneitä. Haukotellen Irja irroitti nauhan hiuksistaan ja laski sen
pöydälle.
— Kas, postikin on tullut, — sanoi hän vilkkaammin,
huomatessaan pöydällä pari kirjettä. — Juuri yksi meille
kummallekin! Täytyy kai sentään vielä lukea ne. Minun näkyy olevan
Katri Dahlbergiltä.
Helvi oli rientänyt ottamaan omansa, mutta jäi kummastuneena
katsomaan päällekirjoitusta.
— Keltä tämä voi olla? — tuumi hän. Irjakin kurkisti.
— Mimmoisia harakanvarpaita! Näytäppäs, niin katsotaan ensin
postileimaa, emmekö arvaa. Kuule, mutta onhan se sieltä, missä
äitisi on…
Helvi oli riistänyt kuoren auki; omituinen levottomuus oli vallannut
hänen mielensä. Hän tiesi jo, että kirje oli Mannelta tai Samulilta,
eivätkä he suotta kirjoittaneet.
— Mikä sinun on, Helvi? — kysyi Irja säikähtyneenä. — Olethan
ihan kalpea ja vapiset… Helvi!

Hän värisikin niin, että tuskin saattoi puhua. Kirje putosi hänen
kädestänsä, ja hän vaipui Irjan syleilyyn.
— He kirjoittavat, että äiti on heikkona sairaana. Minun täytyy
kohta lähteä…

XIII
Sairashuoneessa oli kaikki hiljaa. Uudin oli laskettu alas, ovi oli
suljettu, ja Helvi istui liikkumattomana, äänettömänä tuolillansa
vuoteen jalkopäässä. Hänen katseensa oli jännittynyt ja levoton. Äiti
oli jo nukkunut niin kauvan — nukkuiko hän ehkä heräämättä
milloinkaan?
Ei — hän jo liikahti ja nyt avasi silmänsä. Jumalan kiitos!
Paljon hän oli laihtunut ja kalvennut viime näkemästä. Sen
voiman, minkä muutama huoleton kesäviikko oli antanut, oli äkillinen
verensyöksy monin kerroin ottanut takaisin. Nyt olivat tuskat poissa,
ainoastaan ääretön väsymys jäljellä, ja syvä rauha lepäsi noilla
kasvoilla, jotka hellästi kääntyivät Helviin päin.
— Olethan sinä täällä, — kuiskasi hän. — Niin hiljaa, kultaseni,
että luulin olevani yksin.
— Tarvitsetko, äiti, jotakin?
— En, en mitään. Sinua minä kaipasin ja sinut sain.

Seurasi hetken äänettömyys. Mutta sitte viereisen tuvan ovi
avattiin kovalla jysäyksellä ja alkoi kuulua meluavaa puhetta ja
naurun rähinää.
— Se Manta on aika likka — ei pelännyt, vaikka oli keinu vähällä
mennä ympäri, — kuului Samuli sanovan.
— Olisit potkaissut vähän kovempaa, niin eikö olisi kirkunut —
— Vai te keinumaan kylän tyttöjen kanssa, kun minä työhön
käsken, — torui emännän kiivas ääni. — Juuri olisi oikein, jos
menisitte päänne kiveen.
Helvi käännähti tuskallisesti äitiin päin. Eivätkö nuo edes nyt
voineet olla hiljaa, kun tiesivät sairaan makaavan seinän takana?
— Menenkö pyytämään, että he eivät puhuisi niin kovaa? — kysyi
hän.
— Ei, anna olla. En minä enää nuku. Olisi minullakin sanomista
sinulle, jos jaksaisin… Tule lähemmäksi, lapsi — noin…
Äiti katsoi häntä syvään tutkivasti silmiin.
— Sinä olet kertonut, että sinulla Haapalehdossa oli hyvin
hauskaa, ja senhän aina kirjeistäsikin huomasin. Mutta jotakin minä
kaipasin… Helvi, olitko Vapahtajallesi uskollinen?
Tyttö painoi päänsä alas. Mitä hän vastaisi? Niinhän hän koko ajan
oli kuvitellut, että hän kaikessa menetteli aivan oikein; mutta tässä
äidin vuoteen vieressä oli niin juhlallista, niin vakavaa — ja koko
entinen rakennus alkoi järkkyä ja horjua.

— Voi, en tiedä; kyllä minä koetin —
— Tuntuuko sinusta, kuin olisit siellä tullut lähemmäksi Jeesusta
kuin ennen?
Siinä muodossa Helvi ei ollut asiaa ajatellutkaan. Kysymys tuli kuin
salama, joka loi äkillistä valoa sydämen kätkettyihin komeroihin.
— En, en lähemmäksi, — täytyi hänen ehdottomasti tunnustaa.
— Siis kauvemmaksi pois. Kukaan ei voi pysyä paikallansa.
Helvi oli hetken vaiti; totuus painoi häntä maahan. Vaan sitte hän
kohotti katseensa jälleen.
— Lindiläiset ovat niin hyviä, ja minä rakastan heitä kaikkia. Mutta
minä en luule, että he paljon tuntevat Jeesusta. Enkö saisi pitää
heistä?
— Tietysti saat, lapseni, ja sinun tuleekin. Olisithan muuten paha
ja kiittämätön. Jumala rakastaa kaikkia ihmisiä.
— Voiko sitte tulla Jeesusta lähemmäksi sellaisten joukossa, jotka
eivät tunne häntä, jos rakastaa myöskin heitä? Samanlaisena
varmaankin voi pysyä…
— Et pääse lähemmäksi Jeesusta, jos rakastat jotakuta muuta
enemmän kuin häntä, olkoon se toinen sitte Jeesuksen oma tai
hänelle vieras. Mutta jos Jeesus on paras ystäväsi, voit missä
tahansa kiintyä häneen enemmän ja enemmän. Jokainen kiusaus ja
taistelu, jossa voitat, vie sinua askeleen eteenpäin. Samaten
jokainen tappio heikontaa. Ja sinun täytyy voittaa tai joutua tappiolle
— ei ole kolmatta mahdollisuutta.

Helvi taisteli hetken. Sitte hän yhtäkkiä kysyi: — Oliko se tappio,
että minä en langennut polvilleni illoin aamuin?
Äidin muoto kävi huolestuneeksi, sillä nyt vasta hänelle selvisi
niiden kiusausten moninaisuus, joihin hän oli lapsensa lähettänyt.
Mutta se voi olla paras — ennemmin tai myöhemmin sen kuitenkin
täytyi tapahtua…
— Kerro minulle oikein tarkkaan, miten se kävi, — pyysi hän.
— Enkö väsytä sinua? Olemme jo puhuneet niin paljon.
— Kuka tietää, kauvanko enää saamme puhua toistemme kanssa

— Älä sano niin, äiti, — keskeytti Helvi kiihkeästi. — Paranethan
sinä! Nyt olet jo paljon virkeämmän näköinen kuin ensin.
— Kaikki on Jumalan kädessä. Kerro nyt vaan; ei se minua rasita,
se rauhoittaa.
Ja Helvi kertoi — purki koko täyden sydämensä, johon oli niin
paljo kysymyksiä kerääntynyt eron ajalla. Äiti makasi silmät
ummessa, mutta Helvi tiesi hänen kuuntelevan. Kun kertomus oli
loppunut, loi hän taaskin Helviin tuon ihmeellisen katseensa, joka
tuntui tunkevan läpi ja jota ei kiertäen voinut väistää, ja kysyi vaan:
— Mikä nyt siis oli syy, jonka tähden luulit Jumalan tahdoksi, ettei
sinun pitänyt polvistua?
— Enhän minä sitä Jumalan tahdoksi luullut, mutta minä ajattelin,
ettei hän välttämättä vaatisikaan…

— Kaikki riippuu syystä. Koeta selvästi ja rehellisesti saada
sanotuksi, miksi et sitte itse tahtonut!
— Se tuntui Irjasta kummalliselta —
— Ja sinä häpesit — eikö niin?
Helvi ei vastannut, mutta loi taaskin alas silmänsä.
— "Joka minua häpee ihmisten edessä, sitä minä häpeän Isäni ja
hänen pyhien enkeliensä edessä," sanoo Jeesus. Hän ei hävennyt
tulla ihmisten pilkattavaksi sinun tähtesi. Tahtoisitko sinä hänet
kieltää?
— Mutta eihän kirkossakaan kukaan lankea polvilleen. Irja sanoi,
että
Jumala yhtä hyvin kuulee kuinka tahansa, ja onhan se niin…
— Minä huomautin jo kerran, että kaikki riippuu syystä. Ajatellaan
siis, että sinulla kotonakin olisi ollut tapana tehdä kuten kirkossa:
istua tuolilla ja painaa pääsi käsiisi, jotta mikään ympärillä ei häiritsisi
hiljaisuutta Jumalan edessä. Sitte olisit sanonut Irjalle: anna minun
nyt olla rauhassa, minä tahdon rukoilla — ja olisit menetellyt sen
tapasi mukaan. Minä olen aivan sitä mieltä kuin sinäkin; rukouksesi
olisi ollut ihan yhtä otollinen Jumalalle. Mutta olisiko se ollut sinulle
helpompaa kuin polvillesi lankeaminen? Etkö käsitä, että tahdoit
peittää rukoustasi?
— Kyllä minä nyt käsitän sen, — kuiskasi Helvi. — Ja huomasin
minä senkin, ettei rukous koskaan enää ollut sama kuin ennen.
Melkein aina minä häiriinnyin.

— Jumala on niin suuri ja me niin pienet. Emmekö nöyrinä vaipuisi
maahan hänen eteensä? Tulee päivä, jona emme voi — jona olemme
vuoteeseemme sidotut…
— Nyt on lääkkeen aika, äiti. Kello löi yksi, — keskeytti Helvi,
nousten paikaltaan.
— Ja sitte sinun pitää mennä ulos saamaan raitista ilmaa; käyt
muuten kalpeaksi ja heikoksi. Pane täälläkin akkuna auki! On niin
suloista kuulla pääskysten visertävän…
Kun Helvi meni tuvan läpi, olivat pojat jo poistuneet, ja emäntä
hääräsi yksinään lieden luona.
— Joko tulet lämmittämään kaurakeittoasi? — kysyi hän
nähdessään
Helvin.
— En vielä; äiti otti vastikään lääkettä.
— Kuinka hän nyt voi?
— Kyllä minä luulisin, että hän on parempi, sillä me puhuimme
äsken pitkän aikaa, eikä hän sanonut liiaksi väsyneensä.
— Hyvä kun paranisi. Siitä ruoastakin on täällä maalla semmoinen
tekeminen…
Helvi kulki ulos ja niityn piennarta pitkin metsään päin. Sinne
puiden ja kukkien pariin hän halusi. Pihalla karjatarhan vieressä ei
hän viihtynyt, taloa ympäröivät viljelysmaat eivät suoneet suojaa
auringon kuumilta säteiltä, eikä alempana virtaileva lieterantainen,
ruskeavetinen joki häntä kylpyyn houkutellut. Hän kiirehti

askeleitaan, jotta ehtisi edes lyhyen hetken viivähtää metsän
suloisessa siimeksessä, ennenkuin taas täytyi palata tukahuttavaan
tupaan ja ryhtyä päivällistoimiin äitiä varten. Työ oli kyllä rakas,
mutta täällä se tuntui väkisinkin raskaalta. Täti piti häntä tavattoman
taitamattomana niin isoksi tytöksi, ja Helvi arveli, että hän saattoi
ollakin oikeassa. Äitihän oli taloustoimista päähuolen pitänyt, vaikka
tosin Helvi pienestä asti oli saanut auttaa. Masentavalta kumminkin
tuntui kuulla huomautuksia tuon tuostakin, ja oikein Helviä pelotti,
kun taas läheni ruoanlaittamisen aika.
Hoh, kuinka hyvältä tuntui päästä kaidalle, viileälle polulle! Tuossa
oli yhtä samettimaista sammalta kuin ison männyn juurella
Honkaharjulla — ja tuossa oli kivikin. Siihen Helvi tahtoi istuutua
menneitä viikkoja muistelemaan. Niin lyhyt oli ilon ja päivänpaisteen
aika ollut. Miksi Jumala nyt juuri antoikin äidin sairastua? Siksikö,
että Helvi todella oli ollut etääntymässä Vapahtajan luota, kuten äiti
sanoi? Mutta eikö Jumala olisi löytänyt muuta keinoa viedäkseen
häntä takaisin?
Silloin kuin siellä Honkaharjulla istuttiin, kertoi Ensio aikovansa
papiksi. Kummallista, ettei hänkään koskaan puhunut Jeesuksesta,
jonka palvelijaksi hän kumminkin aikoi! Totta kai hän sentään
Jeesusta rakasti — vai miten? Ja hänkin oleskeli noiden toisten
parissa, jotka ainakin näyttivät Vapahtajalle vierailta… Miksi eivät he
olleet puhuneet toisillensa, hän ja Helvi, ja auttaneet toisiansa
taisteluissa? Jos Ensio olisi alkanut — sillä eihän Helvi kehdannut…
Oli miten tahansa — Helvi ei voinut surumielin ajatella
Haapalehdossa vietettyä aikaa. Kyllä hän oli tehnyt syntiä ja
sentähden ollut rauhaton, mutta se oli hänen oma syynsä. Voi,

kuinka mielellänsä hän olisi lähtenyt takaisin, taistellut uljaammin ja
voittanut! Kun vaan äiti paranisi oikein pian…
Tuuli kulki huoaten läpi männyn oksien, harakka räkätti, ja Helvi
hyppäsi ylös paikaltaan. Hänestä kuului aivan, kuin joku olisi häntä
huutanut — mutta kaiketi se oli erehdys. Ehkä kello kuitenkin oli jo
niin paljon, että piti rientää ruokaa laittamaan. — Mutta eikö taas
huudettu — ja tulihan tuolla Manne tietä pitkin — juosten, viittoen…
Mitä ihmettä se merkitsi? Mitä oli tapahtunut?
— Kiiruhda, Helvi, äitisi luo! Hän sai taas semmoisen verensyöksyn

Helvi ei enää nähnyt eikä kuullut mitään ympärillänsä. Hän juoksi
henkensä edestä, saapui talolle tietämättä miten, tempasi oven auki
ja syöksyi sisään.
* * * * *
Kamppausta oli rauha seurannut. Sairas makasi tilallaan
kuolonkalpeana, mutta tyynin piirtein ja avoimin silmin. Helvi itkeä
nyyhkytti hänen vieressänsä.
Hän koetti hiukan ojentaa hervotonta kättänsä.
— Lapseni, rakkaani…
Helvi kumartui hänen ylitsensä.
— Niin pian se tapahtui, etten saattanut aavistaa… Minä menen
pois, mutta pysy Jeesukselle uskollisena…

Welcome to our website – the perfect destination for book lovers and
knowledge seekers. We believe that every book holds a new world,
offering opportunities for learning, discovery, and personal growth.
That’s why we are dedicated to bringing you a diverse collection of
books, ranging from classic literature and specialized publications to
self-development guides and children's books.
More than just a book-buying platform, we strive to be a bridge
connecting you with timeless cultural and intellectual values. With an
elegant, user-friendly interface and a smart search system, you can
quickly find the books that best suit your interests. Additionally,
our special promotions and home delivery services help you save time
and fully enjoy the joy of reading.
Join us on a journey of knowledge exploration, passion nurturing, and
personal growth every day!
ebookbell.com