Friday, July 10, 2026

.::: Sample Access Database MariaDB via Frontend & Backend using Lucee with accecc login Application.cfc :::.

  
https://teguhth.blogspot.com/2026/02/sample-access-database-mariadb-via.html

Kalau tujuan Anda adalah setiap kali membuka:

http://10.10.10.90:8888/pembelian_front.cfm

maka pengguna harus login terlebih dahulu, saya sarankan menggunakan Session Login. Cara ini lebih sederhana dibanding CFLOGIN dan umum dipakai di Lu

1. Struktur file

root@teguhth-all ROOT]# pwd
/opt/lucee/tomcat/webapps/ROOT
[root@teguhth-all ROOT]#
[root@teguhth-all ROOT]# ls -lh Application.cfc login.cfm logout.cfm pembelian_front.cfm pembelian_api.cfm
-rw-r--r-- 1 root root  744 Jul 10 15:06 Application.cfc
-rw-r--r-- 1 root root 1.1K Jul 10 14:57 login.cfm
-rw-r--r-- 1 root root   76 Jul 10 14:57 logout.cfm
-rw-r--r-- 1 root root  296 Jul 10 15:07 pembelian_api.cfm
-rw-r--r-- 1 root root  912 Jul 10 15:09 pembelian_front.cfm
[root@teguhth-all ROOT]#

 
2. Buat Application.cfc

[root@teguhth-all ROOT]# pwd
/opt/lucee/tomcat/webapps/ROOT
[root@teguhth-all ROOT]#
[root@teguhth-all ROOT]# cat Application.cfc
<cfcomponent output="false">

    <cfset this.name = "PembelianApp">
    <cfset this.sessionManagement = true>
    <cfset this.sessionTimeout = CreateTimeSpan(0,8,0,0)>

    <cffunction name="onRequestStart" returntype="boolean">

        <cfargument name="targetPage">

        <!-- halaman yang boleh diakses tanpa login -->
        <cfset allowPage = ListFindNoCase(
            "login.cfm",
            ListLast(arguments.targetPage,"/")
        )>

        <cfif NOT allowPage>

            <cfif NOT StructKeyExists(session,"login")>

                <cflocation
                    url="login.cfm"
                    addtoken="false">

            </cfif>

        </cfif>

        <cfreturn true>

    </cffunction>

</cfcomponent>
[root@teguhth-all ROOT]#
 


3. Buat login.cfm

[root@teguhth-all ROOT]# pwd
/opt/lucee/tomcat/webapps/ROOT
[root@teguhth-all ROOT]#
[root@teguhth-all ROOT]# cat login.cfm
<cfsetting showdebugoutput="false">

<cfif StructKeyExists(form,"username")>

    <cfif
        form.username EQ "admin"
        AND
        form.password EQ "123456">

        <cfset session.login = true>
        <cfset session.username = form.username>

        <cflocation
            url="pembelian_front.cfm"
            addtoken="false">

    <cfelse>

        <cfset pesan="Username / Password Salah">

    </cfif>

</cfif>

<!DOCTYPE html>

<html>

<head>

<title>Login</title>

<style>

body{

font-family:Arial;

background:#f5f5f5;

}

.login{

width:350px;

margin:100px auto;

padding:20px;

border:1px solid #ddd;

background:white;

}

input{

width:100%;

padding:8px;

margin-bottom:10px;

}

button{

padding:10px;

width:100%;

}

</style>

</head>

<body>

<div class="login">

<h2>Login</h2>

<cfif IsDefined("pesan")>

<font color="red">

<cfoutput>#pesan#</cfoutput>

</font>

<br><br>

</cfif>

<form method="post">

Username

<input
type="text"
name="username">

Password

<input
type="password"
name="password">

<button>

Login

</button>

</form>

</div>

</body>

</html>
[root@teguhth-all ROOT]#


4. Buat logout.cfm

[root@teguhth-all ROOT]# pwd
/opt/lucee/tomcat/webapps/ROOT
[root@teguhth-all ROOT]#
[root@teguhth-all ROOT]# cat logout.cfm
<cfset StructClear(session)>

<cflocation
url="login.cfm"
addtoken="false">
[root@teguhth-all ROOT]#

5. Ubah pembelian_front.cfm

[root@teguhth-all ROOT]# pwd
/opt/lucee/tomcat/webapps/ROOT
[root@teguhth-all ROOT]#
[root@teguhth-all ROOT]# cat pembelian_front.cfm
<cfquery
name="qPembelian"
datasource="dbteguhth">

SELECT *

FROM pembelian

</cfquery>

<!DOCTYPE html>

<html>

<head>

<title>Data Pembelian</title>

<style>

body{

font-family:Arial;

}

table{

border-collapse:collapse;

width:100%;

}

th,td{

border:1px solid #ccc;

padding:8px;

}

th{

background:#eee;

}

.menu{

margin-bottom:20px;

}

</style>

</head>

<body>

<div class="menu">

Selamat Datang

<b>

<cfoutput>#session.username#</cfoutput>

</b>

|

<a href="logout.cfm">

Logout

</a>

</div>

<h2>Data Pembelian</h2>

<table>

<tr>

<th>Kode Pembelian</th>

<th>Kode Barang</th>

<th>Kode Customer</th>

<th>Tanggal</th>

<th>Jumlah</th>

</tr>

<cfoutput query="qPembelian">

<tr>

<td>#KODE_PEMBELIAN#</td>

<td>#KODE_BARANG#</td>

<td>#KODE_CUSTOMER#</td>

<td>#dateFormat(TANGGAL_PEMBELIAN,"dd-mm-yyyy")#</td>

<td>#JUMLAH_PEMBELIAN#</td>

</tr>

</cfoutput>

</table>

</body>

</html>
[root@teguhth-all ROOT]#

 

6. pembelian_api.cfm

[root@teguhth-all ROOT]# pwd
/opt/lucee/tomcat/webapps/ROOT
[root@teguhth-all ROOT]#
[root@teguhth-all ROOT]# cat pembelian_api.cfm
<cfquery name="qPembelian" datasource="dbteguhth">
 SELECT
        KODE_PEMBELIAN,
        KODE_BARANG,
        KODE_CUSTOMER,
        TANGGAL_PEMBELIAN,
        JUMLAH_PEMBELIAN
    FROM pembelian
</cfquery>

<cfcontent type="application/json">
<cfoutput>#serializeJSON(qPembelian)#</cfoutput>

[root@teguhth-all ROOT]#

 

Jika API juga ingin diamankan

Hapus pembelian_api.cfm dari daftar pengecualian di Application.cfc:

<cfset allowPage = ListFindNoCase(
    "login.cfm",
    ListLast(arguments.targetPage,"/")
)>


Dengan perubahan itu, baik:

http://10.10.10.90:8888/pembelian_front.cfm
http://10.10.10.90:8888/pembelian_api.cfm

akan sama-sama meminta login terlebih dahulu sebelum dapat diakses. Ini adalah pendekatan yang lebih aman jika API tidak memang ditujukan untuk diakses secara publik.

No comments:

Post a Comment

Popular Posts